将 Python 转换为 Haskell / Lambda 演算
Haskell 和 Lambda 演算中的 Python 代码是什么?
def f1():
x = 77
def f2():
print x
f2
f1
我在 lambda 演算方面的尝试
\x. 77 (\x.x)
What is the Python code in Haskell and Lambda calculus?
def f1():
x = 77
def f2():
print x
f2
f1
My attempt in lambda calculus
\x. 77 (\x.x)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在Haskell:
重构中,因为IO只是混淆了问题:
重构:
重构,因为你想要变量?
Beta 缩减:
你的程序是用 Haskell 编写的。
Lambda 演算没有数字文字(与 Haskell 不同),因此我们必须使用 教会数字。
因此,将“77”编译为 lambda 演算:
这就是 Lambda 演算中的 Python 程序。
In Haskell:
Refactoring, since IO just confuses the issue:
Refactoring:
Refactoring, since you want the variable?
Beta reduce:
And you have your program in Haskell.
Lambda calculus doesn't have numeric literals (unlike Haskell), so we must use Church numerals.
So compiling "77" to lambda calculus:
And there's your Python program in Lambda Calculus.
Haskell:
或者更像你的 lambda 演算:
Haskell:
Or to be more like your lambda calculus:
我不懂Python,所以我可能是完全错误的,但这是我的Haskell 解释。
或者,因为你在那里有一个常数
I don't know python, so I could be completely wrong, but this is my Haskell interpretation.
Or, since you've got a constant there
在 lambda 演算中:
In lambda calculus: