
07.07.2014, 22:01
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от kobezzza
|
с пруфом
|
И первоначально ты утверждал, что выигрышь в десятки раз. Так что пруфа я не вижу.
|
|

07.07.2014, 22:04
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от kobezzza
|
for
|
Это че не цикл у тебя? Ты уж если за рекурсию, давай пример чисто рекурсивной реализации. А то я уж начинаю подозревать, что ты и не знаешь, что такое рекурсия. Ты ведь знаешь?
|
|

07.07.2014, 22:05
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от foo
|
И первоначально ты утверждал, что выигрышь в десятки раз. Так что пруфа я не вижу.
|
Где я писал вообще что-то про выигрыш. Я писал что рекурсия очевиднее и проще и кода писать меньше и что не нужно оптимизировать то, что и так возможно будет с оптимизировано или в принципе нет смысла оптимизировать и дал ссылку с реализаций паттерна "примесь" на циклах, который хотя я сам его писал, но гораздо запутанней классической реализации на рекурсии.
|
|

07.07.2014, 22:06
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Это че не цикл у тебя? Ты уж если за рекурсию, давай пример чисто рекурсивной реализации. А то я уж начинаю подозревать, что ты и не знаешь, что такое рекурсия. Ты ведь знаешь?
|
Ты обкурился?
removeFolder(cat) {
for (var i = 0; i < cat.length; i++) {
if (isFile(cat[i])) {
unlink(cat[i]);
} else {
removeFolder(cat[i]);
}
}
rmdir(cat);
}
removeFolder(cat[i]);
А это что? Я начинаю подозревать, что ты идиот (хотя стоп, я в этом уверен).
Цитата:
|
Ты уж если за рекурсию, давай пример чисто рекурсивной реализации.
|
Не нужно перевирать слова пытаясь казаться умным. Я говорил, что рекурсия очевидное и хорошее решение для многих задач, а не "нахуй циклы, хреначим всё на рекурсиях".
|
|

07.07.2014, 22:08
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от kobezzza
|
Да ну
|
Ты понимаешь, что профит хвостовой рекурсии заключается в отсечении не нужных ветвей вычисления? Если ты напишешь внутри хвосто-рекурсивного вызова read-from-user-input твой код замерзнет вообще. Но это не отменяет отсечения лишних ветвей вычислений.
|
|

07.07.2014, 22:11
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от kobezzza
|
А это что?
|
Да, это рекурсивная функция, которая внутри содержит цикл. Циклы в перемежку с рекурсией -- это некомильфо в фп, ты понял о чем я, не придуривайся.
зы код пока не смотрел.
|
|

07.07.2014, 22:12
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Ты понимаешь, что профит хвостовой рекурсии заключается в отсечении не нужных ветвей вычисления?
|
Я говорю о конкретной реализации, а не о сферических конях в вакууме. eval как красная тряпка - вижу, значит ничего не делаю, никаких оптимизаций, тупое воспроизведение байт-кода "как есть".
|
|

07.07.2014, 22:13
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Циклы в перемежку с рекурсией -- это некомильфо в фп
|
Всё с тобой ясно...
|
|

07.07.2014, 23:44
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
kobezzza,
короче, не буду лить воды. Я проверил в ноде на следующем коде:
Код:
|
fs=require("fs")
write=function(){
fs.writeFileSync("./counter.txt", counter)
}
fu=function(){counter++; write(); fu()}
counter=0
fu()
path.js:163
resolvedTail = normalizeArray(resolvedTail.split(/[\\\/]+/).filter(f),
^
RangeError: Maximum call stack size exceeded |
Эта функция 100% содержит хвосторекурсивный вызов. Если бы оптимизация была, этот код выполнялся бы бесконечно. Как видишь, никаких эвалов и прочих Function тут нет. Выполнение остановились на 25104
Попробуй на своей модной новейшей ноде, потом расскажешь. А пока я засчитываю тебе слив. В JS нет оптимизации хвостовой рекурсии.
|
|

08.07.2014, 00:38
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от foo
|
kobezzza,
Ты уверен, что ты понимаешь о чем говоришь?
Код:
|
fact=function(n){if(n<2) return 1; return n*(fact(n-1))} |
Это не хвосто-рекурсивный код. его соптимизировать невозможно.
|
единственный кейс для кодогенерации и eval в JavaScript
Сообщение от foo
|
невозможно.
|
я бы так не говорил 
|
|
|
|