Haskell 和 Lambda 演算中的 Python 代码是什么?
def f1():
x = 77
def f2():
print x
f2
f1
我在 lambda 演算中的尝试
\x. 77 (\x.x)
最佳答案
在 Haskell 中:
f1 = f2
where x = 77
f2 = print x
重构,因为 IO 只是混淆了问题:
f1 = f2
where x = 77
f2 = x
重构:
f1 = x
where x = 77
重构,因为你想要变量?
f1 = (\x -> x) 77
Beta 减少:
f1 = 77
你的程序是用 Haskell 编写的。
Lambda 演算没有数字文字(不像 Haskell),所以我们必须使用 Church numerals . 所以将“77”编译为 lambda 演算:
f1 = \f.\x. f (f (f (f ( ... ) x)))
Lambda 微积分中有您的 Python 程序。
关于python - 将 Python 转换为 Haskell/Lambda 演算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1814061/