3
Предположим, у меня есть нетипизированная реализация комбинатора Y в Racket.Написание комбинатора Y в типизированном/ракетке
#lang racket
(define Y
((λ (f)
(f f))
(λ (z)
(λ (f)
(f (λ (x) (((z z) f) x)))))))
(define factorial
(Y (λ (recursive-factorial)
(λ (x)
(if (<= x 0)
1
(* x (recursive-factorial (- x 1))))))))
(factorial 5)
Как перевести это в набранный/ракетку?
N.B. Я думаю, что это не канонический способ написания комбинатора Y, но он должен быть эквивалентным.