calchylus-lambda微积分与hy
calchylus的Python项目详细描述
简介
calchylus是计算机可安装的Hy模块,用于计算, 此外,通过本文档,可以了解lambda的基本知识 微积分(也称为λ-微积分)。
Lambda calculus is a formal system in mathematical logic for expressing computation that is based on function abstraction and application using variable binding and substitution.
目标受众是那些:
- 对编程语言的理论和历史感兴趣
- 可能有或有兴趣获得一些python和/或lisp方面的经验
- 他想缩小数学符号和 编程语言,特别是通过逻辑
Andrew Bayer在他的博客中写到正式的证明和推论:
Traditional logic, and to some extent also type theory, hides computation behind equality.
另一方面,lambda演算揭示了逻辑中的计算是如何进行的。 通过操纵lambda项来完成。操作规则很简单 最初是用纸和笔做的,但现在我们更喜欢用电脑 任务。lambda演算也解决了这个问题,可以证明什么,以及 在有限时间内无法计算的问题。在形式上,这些被称为 decidability和halting problem。
除了计算lambda表达式之外,calchylus模块还可以作为 小型编程语言的起点。经由custom macros 表示众所周知的lambda表单,calchylus提供了所有必需的 用于布尔、正整数和列表数据类型以及 条件、循环、变量设置器、命令式do结构、逻辑 连接词和算术运算符。例如,你可以以此为基础 real numbers,如果有意义的话,甚至是负复数。你的 想象力是唯一的限制。
最后,在研究开源calchylus实现时 托管在GitHub上,人们可以期望对 顺序函数和combinatory logic,而不是不动点的最小值 组合或短,_组合。
快速启动
对于希望快速掌握编码的人:
安装
$ pip install calchylus
打开hy
$ hy
导入
(require[calchylus.lambdas[*]])
初始化
(with-alpha-conversion-and-macrosL ,)
lambda舞蹈
(Lxy , (x(x(x(x(xy)))))ab); output: (a (a (a (a (a b)))))
(FIBONACCISEVENxy); output: (x (x (x (x (x (x (x (x (x (x (x (x (x y)))))))))))))
文档
有关完整文档,请参见:calchylus.readthedocs.io