Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 07.07.2014, 22:01
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

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

Сообщение от kobezzza
for
Это че не цикл у тебя? Ты уж если за рекурсию, давай пример чисто рекурсивной реализации. А то я уж начинаю подозревать, что ты и не знаешь, что такое рекурсия. Ты ведь знаешь?
Ответить с цитированием
  #23 (permalink)  
Старый 07.07.2014, 22:05
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от foo Посмотреть сообщение
И первоначально ты утверждал, что выигрышь в десятки раз. Так что пруфа я не вижу.
Где я писал вообще что-то про выигрыш. Я писал что рекурсия очевиднее и проще и кода писать меньше и что не нужно оптимизировать то, что и так возможно будет с оптимизировано или в принципе нет смысла оптимизировать и дал ссылку с реализаций паттерна "примесь" на циклах, который хотя я сам его писал, но гораздо запутанней классической реализации на рекурсии.
__________________
kobezzza
code monkey
Ответить с цитированием
  #24 (permalink)  
Старый 07.07.2014, 22:06
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 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]);


А это что? Я начинаю подозревать, что ты идиот (хотя стоп, я в этом уверен).

Цитата:
Ты уж если за рекурсию, давай пример чисто рекурсивной реализации.
Не нужно перевирать слова пытаясь казаться умным. Я говорил, что рекурсия очевидное и хорошее решение для многих задач, а не "нахуй циклы, хреначим всё на рекурсиях".
__________________
kobezzza
code monkey
Ответить с цитированием
  #25 (permalink)  
Старый 07.07.2014, 22:08
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

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

Сообщение от kobezzza
А это что?
Да, это рекурсивная функция, которая внутри содержит цикл. Циклы в перемежку с рекурсией -- это некомильфо в фп, ты понял о чем я, не придуривайся.

зы код пока не смотрел.
Ответить с цитированием
  #27 (permalink)  
Старый 07.07.2014, 22:12
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Ты понимаешь, что профит хвостовой рекурсии заключается в отсечении не нужных ветвей вычисления?
Я говорю о конкретной реализации, а не о сферических конях в вакууме. eval как красная тряпка - вижу, значит ничего не делаю, никаких оптимизаций, тупое воспроизведение байт-кода "как есть".
__________________
kobezzza
code monkey
Ответить с цитированием
  #28 (permalink)  
Старый 07.07.2014, 22:13
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Циклы в перемежку с рекурсией -- это некомильфо в фп
Всё с тобой ясно...
__________________
kobezzza
code monkey
Ответить с цитированием
  #29 (permalink)  
Старый 07.07.2014, 23:44
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 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 нет оптимизации хвостовой рекурсии.
Ответить с цитированием
  #30 (permalink)  
Старый 08.07.2014, 00:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

Сообщение от foo Посмотреть сообщение
невозможно.
я бы так не говорил
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript чат-бот FanAizu Общие вопросы Javascript 5 30.01.2014 03:00
Цикл завешивает страницу, помогите Romingood jQuery 5 19.10.2013 14:30
подключать jquery-ui.custom.js или jquery-ui.custom.min.js? Faab jQuery 4 11.10.2013 20:53
Кастомный селект, чекбокс, радио vostok Ваши сайты и скрипты 0 12.08.2013 00:33
В зависимости от referrer выводить рекламу adsene или зорьки wlad2 Общие вопросы Javascript 12 19.12.2010 01:02