函数的类型、变量、值与绑定
一、函数的类型:
1、输入输出的映射形式;
2、定义了访问函数时的调用约定;cpu在访问函数是参量的布局形式;
3、相同函数类型的变量可以相互赋值;
函数作为类型是函数式编程的基石;
二、函数的变量:
定义函数类型-》定义变量-》给 变量赋值;
常见形式:
常指针变量:函数类型 = 函数实现;
函数常变量进行定义的同时进行绑定;
普通变量:函数类型 = ?
严格来说,函数的常指针变量,应该解释为函数类型结构中的函数地址变量为常指针;
常指针变量只能在定义时初始化,即函数变量和函数地址(定义)在定义时进行绑定;
三、函数的值:
1、函数字面量;匿名函数、block、块;
2、函数定义;
四、函数变量绑定或赋值:
1、常量绑定;
2、变量赋值;
五、函数变量的二阶构造:
函数作为结构类型,它的构造分为两个阶段:
1、内存指定(函数地址指定);
2、成员变量赋值;
然后才能使用,否则为不完整构造;
六、多态访问:
解释绑定执行;
多态函数变量属于泛型函数变量:将缺省函数作为泛型参量;
因为具有函数和泛型参量双重可变性,所以访问时需要解释执行。
函数类型的访问被cpu解释为指令序列。
七、函数是指令:函数类型与数据类型
函数是一系列对数据进行访问和修改的指令,天然与数据具有耦合性;
八、函数类型理论的另一种解释
1、元类型:定义了从输入到输出的映射关系;实现了调用约定规范;
2、具体类型:在元类型的基础上绑定了函数定义的类型;
3、实例:在具体类型的基础上绑定了数据;
元类型可以定义变量;
具体类型可以作为变量的值;
实例可以作为指令访问;
九、函数的类型检查
1、将函数定义赋值给函数变量,需要检查映射关系是否匹配;
2、给具体函数进行参量赋值时,需要检查参量类型和定义类型是否匹配;
十、函数的错误
1、赋函错误;
2、赋参错误;
3、未定义错误;
4、符号冲突错误;
我思故我在