Вопросы по теме '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 просмотров
schedule
07.04.2022
Рекурсивные функции, переполнение стека и Y-комбинаторы
У меня есть рекурсивная функция (на С#), которую мне нужно вызвать около 800 миллионов раз; это, очевидно, обычно приводит к переполнению стека примерно после 900-го вызова. Я выкинул это на несколько циклов, но рекурсивный шаблон намного проще и...
898 просмотров
schedule
11.07.2022
Обсуждение Y-комбинатора в The Little Schemer
Итак, я потратил много времени на чтение и перечитывание конца главы 9 книги The Little Schemer , где аппликативный комбинатор Y разработан для функции length . Я думаю, что моя путаница сводится к одному утверждению, которое противопоставляет две...
4502 просмотров
schedule
12.07.2023
Не удалось заставить работать комбинатор 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 просмотров
schedule
03.09.2022
Доступ к внешней переменной внутри блока и 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 просмотров
schedule
20.07.2023
Когда я использую 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 просмотров
schedule
16.10.2022