学习语言

函数与闭包

声明函数、约束参数与返回值,并通过闭包捕获词法环境。

法 造加法(甲:数):法 则
    法 相加(乙:数):数 则
        归 甲 加 乙;
    终
    归 相加;
终

令 加十:法 为 造加法(10);
言 加十(5);

参数和返回类型均可省略。参数在调用时检查,返回值在函数结束时检查。无显式归时函数返回空,因此标注了非空返回类型的函数必须显式返回相符值。

内部函数可以捕获定义位置可见的绑定。即使外层函数已经返回,这些绑定仍由闭包保存。函数调用采用词法作用域,查找变量的位置由函数的定义位置决定,而不是调用位置。

方法也是函数,但从实例上取出时会自动绑定此;参见类与实例。

需要延迟执行、取消或组合工作时,可在法前加异;详见异步任务。