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.

目标受众是那些:

  1. 对编程语言的理论和历史感兴趣
  2. 可能有或有兴趣获得一些python和/或lisp方面的经验
  3. 他想缩小数学符号和 编程语言,特别是通过逻辑

Andrew Bayer在他的博客中写到正式的证明和推论:

Traditional logic, and to some extent also type theory, hides computation behind equality.

另一方面,lambda演算揭示了逻辑中的计算是如何进行的。 通过操纵lambda项来完成。操作规则很简单 最初是用纸和笔做的,但现在我们更喜欢用电脑 任务。lambda演算也解决了这个问题,可以证明什么,以及 在有限时间内无法计算的问题。在形式上,这些被称为 decidabilityhalting 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有服务类安卓的java altbeacon   java在OpenXava免费版本中可以创建多个用户吗?   java如何决定定义变量“private”?   java为什么GetMethodID()对不存在的方法不返回NULL?   java Get JComboBox项字符串表示法   java如何在ifs之间设置限制?   java Android错误:IllegalStateException   JavaSpring4MVC语言环境已更改,但JSP对此没有响应   java Netbeans:如何构建。jar文件随附外部文件。jar库?   Spring Petclinic项目Maven编译时出现java错误   声明Java数组增量元素的快速方法   java无法使用相对xpath找到元素   javascript无法更改标题,也无法在操作栏上显示图标   java标签不是一个接一个地动态创建的   java如何使用ThymeLeaf将对象的属性绑定到隐藏字段?   java从EJB无状态会话bean调用CDI会话范围的生产者方法   java为什么num+=array[i]与for循环中的num=num+array[i]的工作方式不同   使用jsonsimple实现jQuery UI自动完成的java JSON格式   JavaFaceletsUI:重复标记中断JSF表单验证