python - 将 Python 转换为 Haskell/Lambda 演算

标签 python haskell lambda lambda-calculus

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/

相关文章:

java - 展平 Java 8 可选管道中的元素列表

c# - 在 C# 中按月对数据进行分组和计数

python - OpenCV Python cv2.perspectiveTransform

string - 如何在 Haskell 中制作开始/结束索引列表?

Haskell:如果遍历参数,RWS 上的单子(monad)固定点将循环

haskell - 协调镜头使用与数据库访问

c++ - 计算字符串中元音的函数

python - 如何从命令行界面将字符串作为标准输入传递给 python 脚本

python - 想要使用python编程通过用户命令向MYSQL表中插入数据

python - Google Colab不显示图片