Если я, допустим, реализую алгоритм for(i=100; i; i--)doStaff, мне на это могут возразить: а почему ты не тратишь достаточное количество памяти? Нельзя добиться результата не потратив избыток памяти. И предлагают сделать так fnc for (iter, term, doStaff){if (iter equal term) return ; else doStuff; for (iter-1, term, doStuff)} . У меня может возникнуть вопрос: а зачем тратить память понапрасну? Но так как я функционально подкован, он не возникает, есть TCO. Но тогда может возникнуть другой вопрос. зачем я пишу код так, как будто я понапрасну трачу память, а компилятор подбирает за мной дерьмо, если я могу писать сразу так, чтобы не использовать лишнюю память? Иными словами, зачем я должен думать о сохранении того, что заведомо ненужно? Но он у меня тоже не возникает, ибо я функционально подкован: потому что моноид в категории эндофунктора, потому что паровоз, потому что Великий Мао Цзедун, а также потому, что гастроном за углом работает до 23.00. Что тут неясного?
А у тебя, сынок, остались еще вопросы? Тогда мы идем к тебе, бойся нас.
|