Lambda 演算运算符优先级
我在理解 lambda 演算运算符优先级时遇到问题。 例如以下代码: lambda x.x z lambda y.x y 将是: lambda x. (x (z lambda y. x y)) 或 lambda x. ((…
SKI 变换,如何用函数式语言编程
我面临以下 Prolog 代码。表达式 [X]>>Y 代表 对于 lambda 表达式 lambda XY 代码消除了 lambda 并给出 S、K 和 I 的组合表达式: convert([X]>>Y,'I'…
lambda 演算问题 - 具体
我有以下问题, (f.x.f(f x))(y.y+1) = x.(y.y+1)((y.y+1) x) = x.(y.y+1)(x+1) = x.x+1+1 我不明白为什么最后一次转换可以? 不应该是x.(y.y+1)(x+1)…
如何解析 lambda 项
我想解析 lambda 演算。我不知道如何解析该术语并尊重括号优先级。例如: (lx ly (x(xy)))(lx ly xxxy) 我找不到好的方法来做到这一点。我只是看不到…
Lambda 演算帮助
所以我完全陷入了问题的这一部分。如果有人能帮忙那就太好了............ 显示项 ZZ,其中 Z 是 λz.λx。 x(zzx) 满足 定点组合器的要求为 ZZM =β M…
如何在 F# 中实现定点运算符(Y 组合器)?
我正在使用 F# 创建 lambda 演算。我目前正试图弄清楚如何实现定点运算符(也称为 Y 组合器)。 我认为其他一切都井然有序。表达式由以下可区分联合表…
如何在 F# 中实现 beta 缩减函数?
我正在用 F# 编写 lambda 演算,但我一直坚持实现 beta 约简(用实际参数替换形式参数)。 (lambda x.e)f --> e[f/x] 使用示例: (lambda n. n*2+3) 7…
FT EDSL 中的 Y 组合器
我正在尝试弄清楚如何在 Final Tagless EDSL 中表达 Y-Combitor: class Symantics exp where lam :: (exp a -> exp b) -> exp (exp a -> exp b) app …
Lambda 演算中的结合性
我正在研究The Lambda calculus一书的练习题。我遇到的问题之一是证明以下内容: 表明应用程序不具有关联性;事实上,x(yz) 不等于 (xy)z 这是我到目…
如何使教堂数字在 lisp 中更易于阅读?
我可以使用方案相当容易地定义教堂数字: > (define f (lambda (x) x)) > (f f) ;0 # > (f (f f)) ;1 # 但是,这并不容易识别 (ff) 是 0 且 (f (ff)) …