Вопросы по теме 'y-combinator'

Практический пример Y-комбинатора
В последнее время я немного читал о функциональном программировании и пытаюсь понять Y-Combinator. Я понимаю, что вы можете использовать Y-Combinator для эффективной реализации рекурсии на языке, который не поддерживает рекурсию напрямую. Однако...
5973 просмотров
schedule 18.06.2022

Комбинатор Y, бесконечные типы и анонимная рекурсия в Haskell
Я пытался решить задачу максимальной суммы подпоследовательностей и придумал аккуратное решение msss :: (Ord a, Num a) => [a] -> a msss = f 0 0 f gmax _ [] = gmax f gmax lmax (x:xs) = let g = max (lmax + x) in f (g gmax) (g 0) xs...
1025 просмотров

Рекурсивные функции, переполнение стека и Y-комбинаторы
У меня есть рекурсивная функция (на С#), которую мне нужно вызвать около 800 миллионов раз; это, очевидно, обычно приводит к переполнению стека примерно после 900-го вызова. Я выкинул это на несколько циклов, но рекурсивный шаблон намного проще и...
898 просмотров

Обсуждение Y-комбинатора в The Little Schemer
Итак, я потратил много времени на чтение и перечитывание конца главы 9 книги The Little Schemer , где аппликативный комбинатор Y разработан для функции length . Я думаю, что моя путаница сводится к одному утверждению, которое противопоставляет две...
4502 просмотров

Не удалось заставить работать комбинатор Y
Вот код ( также здесь ): #lang racket (define poorY ((lambda length (lambda (ls) (cond [(null? ls) 0] [else (add1 ((length length) (cdr ls)))]))) (lambda length (lambda (ls) (cond [(null? ls) 0]...
471 просмотров

Доступ к внешней переменной внутри блока и Y-комбинатора
Я надеюсь, что вы все в порядке. Я реализую Y-комбинатор с фиксированной точкой в ​​Harbour, и у меня с ним возникают проблемы. Что ж, Y-комбинатор можно определить с помощью лямбда-исчисления как: Y = (λh.λF.F(λ x.((h(h))(F))(x)))...
199 просмотров
schedule 30.08.2023

Little Schemer: напишите функцию, которая поддерживает только списки длины ≤ 2
В книге Маленький интриган мы находим эту функцию, которая поддерживает только списки, длина которых меньше или равна 1 : (((lambda (mk-length) ; A. (mk-length mk-length)) (lambda (mk-length)...
248 просмотров

Когда я использую Y-Combinator и блокирую в C, я встречаю странную вещь в значении параметра
Когда я пытаюсь вычислить sinh-1(x) с помощью функций: double asinh_recursion(double buf, double increment, double input_var, unsigned long item_count) { if (fabs(increment) < 1E-5) { return buf; } return...
81 просмотров
schedule 30.07.2022

Использование комбинатора Y в C#
Я пытаюсь понять, как написать рекурсивные функции (например, факториал, хотя мои функции намного сложнее) в одну строку. Для этого я подумал об использовании лямбда-исчисления Комбинатор Y . Вот первое определение: Y = λf.(λx.f(x...
2184 просмотров