Léo*_* 준영 1 python lambda haskell lambda-calculus
Haskell和Lambda演算中的Python代码是什么?
def f1():
x = 77
def f2():
print x
f2
f1
Run Code Online (Sandbox Code Playgroud)
我在lambda演算中的尝试
\x. 77 (\x.x)
Run Code Online (Sandbox Code Playgroud)
在Haskell:
f1 = f2
where x = 77
f2 = print x
Run Code Online (Sandbox Code Playgroud)
重构,因为IO只会混淆问题:
f1 = f2
where x = 77
f2 = x
Run Code Online (Sandbox Code Playgroud)
重构:
f1 = x
where x = 77
Run Code Online (Sandbox Code Playgroud)
重构,因为你想要变量?
f1 = (\x -> x) 77
Run Code Online (Sandbox Code Playgroud)
Beta降低:
f1 = 77
Run Code Online (Sandbox Code Playgroud)
你在Haskell有自己的程序.
Lambda演算没有数字文字(与Haskell不同),所以我们必须使用教会数字.因此编译"77"到lambda演算:
f1 = \f.\x. f (f (f (f ( ... ) x)))
Run Code Online (Sandbox Code Playgroud)
还有Lambda Calculus中的Python程序.
| 归档时间: |
|
| 查看次数: |
1533 次 |
| 最近记录: |