Я пытаюсь выяснить, как выразить Y-Combitor в этом Наконец Tagless EDSL:Y-Combinator в FT EDSL
class Symantics exp where
lam :: (exp a -> exp b) -> exp (exp a -> exp b)
app :: exp (exp a -> exp b) -> exp a -> exp b
fix :: ...
fix f = .....
Я не уверен, но я думаю, что реализация по умолчанию в Y -Комбинатор должен быть возможен, используя «lam» и «app».
Кто-нибудь знает как? Мои первые попытки терпят неудачу из-за того, что «невозможно построить бесконечный тип».
Приветствия, Гюнтер
sclv, Don, Большое спасибо за ответы, что вы указали, гораздо полезнее для меня даже в других обстоятельствах, чем я ожидал. @ Don: Каким будет название книги Barendregt, о которой вы говорите? Thanks, Günther – Guenni
«Barendregt, H. P. Исчисление лямбда: его синтаксис и семантика. Северная Голландия, Амстердам (1984)». Довольно редко, но по-настоящему классический, http://www.amazon.com/Lambda-Calculus-Studies-Foundations-Mathematics/dp/0444875085/ Действительно необходимо выпустить с открытым исходным кодом: / –