在对函数式编程和lambda演算进行了大量阅读之后,我仍然对如何将行为与数据类型和结构相关联感到迷茫。我猜我仍然处于错误的心态。
除了身份功能之外,我原本认为所有其他算术运算都依赖于特定于值类型或结构的规则。
例如,矩阵,向量,标量,随机数分布和虚数都有自己的关联,交换和算术规则。
如何将类型和/或行为附加到值和/或运算符?
答案 0 :(得分:0)
与任何其他编程语言一样,正在开发合适的库。 例如,考虑一个非常基本的微积分,如归纳构造函数(CIC)的微积分,它与(类型的)lambda演算相差不远。 CIC是Coq证明系统的核心:编写的所有东西都是这个基本的微积分,你仍然可以在你提到的所有数据类型上编写复杂的程序(以及它们的原因)。 有助于理解lambda演算的一个关键点是所谓的归纳类型的Bohm-Berarducci编码(automatic synthesis of type lambda programs on term algebras),它提供了处理整数,记录,列表,树等的主要技术。其余的很容易。