函数式与类型

haskell实战

https://rwh.readthedocs.io/en/latest/

Programming

datatype

Primitive data types: typically types that are built-in or basic to a language implementation.
如果操作数(operand)是程序的最基础单位,数据类型(datatype) 应该就是类型系统的最基本单位

mathematical semantics / denotational semantics

https://en.wikipedia.org/wiki/Denotational_semantics

Other approaches providing formal semantics of programming languages including axiomatic semantics and operational semantics.

denotational semantics is concerned with finding mathematical objects called domains that represent what programs do.

An important tenet of denotational semantics is that semantics should be compositional: the denotation of a program phrase should be built out of the denotations of its subphrases.

是通过 构造表达其语义的数学对象(叫做指称 denotation) 来描述语言(language 符号系统)表达式的意义;
通过被称作 域 的数学对象来表示程序在做什么;
语义是可结合
语义确定一个实现不是必需的,它应该为证实一个实现是正确的提供标准;
相当于一种定义。
https://site.douban.com/145723/widget/notes/18130802/note/651058282/

binary operation 二元运算

A binary operation is a calculation that combines the arguments X and Y to X✖️Y。
More precisely, a binary operation on a set)S _is a [mapping](https://en.wikipedia.org/wiki/Map(mathematics)) of the elements of the Cartesian product S×S _to _S
image.png
image.png
集合的二元运算,是两个集合的求笛卡尔积。

λ 演算

λ 演算可以被称为最小的通用程序设计语言,因为它图灵完备。它包括一条变换规则 (变量替换) 和一条函数定义方式。
简介
https://liujiacai.net/blog/2014/10/12/lambda-calculus-introduction/
证明
http://chillyc.info/2006/675602/