Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > LISP > Комбинатор Y |
Автор: entrix 25.4.2010, 18:09 | ||||||
Такая вот тема. Попался в поле зрения так называемый комбинатор Y (подробности тут http://www.wikiznanie.ru/ru-wz/index.php/Комбинатор_неподвижной_точки) Так вот, как работает, например, вот такая комбинация для вычисления длины списка (код на scheme)
Понять не сложно, но вот как работает такой код.
Я до конца понять не смог. Можно ли использовать это определение y-комбинатора для вычисления факториала или длины списка, Например,
зависает в рекурсии. |
Автор: k0rvin 25.4.2010, 20:55 | ||||
вообще непонятна мне эта мания некоторых функциональщиков выражать рекурсию через несколько анонимных лямбд. я понимаю с теоретической точки зрения это интересно, но на практике совершенно нечитаемо и непонятно. Вы можете 1) дать правильную ссылку, 2) переписать код в более понятной форме? Добавлено через 2 минуты и 14 секунд
кстати, зачем? P.S. статью про точку сам нашел (http://www.wikiznanie.ru/ru-wz/index.php/%D0%9A%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%82%D0%BE%D1%80_%D0%BD%D0%B5%D0%BF%D0%BE%D0%B4%D0%B2%D0%B8%D0%B6%D0%BD%D0%BE%D0%B9_%D1%82%D0%BE%D1%87%D0%BA%D0%B8) |
Автор: k0rvin 25.4.2010, 21:51 | ||||
не знаком с ML вообще, Вы имете в виду этот rec (Ocaml):
без которого нельзя было бы определить рекурсивную функцию? |
Автор: Ryukzak 25.4.2010, 22:39 | ||
Именно его. (Ocaml тоже относится к ML семейству) |
Автор: adejneka 27.4.2010, 06:07 | ||||
|
Автор: qweqwe 27.4.2010, 12:55 | ||
вы есть жестоко ошибать rec в ML языках, это ключевое слово, служащее цели упрощения вывода типов ![]() |