跳转至

方術第五

函数之调用

函数有两种调用方式,其含义相同。第二种方式会将前一个函数之结果作为参数传递,适用于需要基于计算结果进行后续操作之场景。此外,计算本身亦为一种函数,称为"关键字函数"。此类函数无需括号或调用关键字即可直接使用。

例如:

施「甲」於一於四。
夫一。夫四。取三以施「甲」。
加一以二
夫一。夫二。取二以加。

以上示例中,施「甲」於一於四夫一。夫四。取三以施「甲」 分别展示两种调用方式。第二种方式会将前面之计算结果作为参数传递给函数

函数之定义

函数可定义如下,支持无参数或带参数之形式。须注意,函数参数具有类型,输入参数会自动转换为对应类型。

例如:

吾有一術。名之曰「法」。是術曰。
    xxx
是謂「法」之術也。

带参数之函数定义如下:

吾有一術 名之曰「三法」。
欲行是術 必先得 二數曰「甲」曰「乙」。一言曰「丙」。是術曰。
    xxx
是謂「三法」之術也。

下例中,参数 被定义为字符串类型(一言),因此输入参数会自动转为字符串:

吾有一術 名之曰「法」。
欲行是術 必先得一言曰「甲」。是術曰。
    加「甲」以一。書之。
是謂「法」之術也。
施「法」於二

运行结果为 二一 而非 ,因为输入参数 被转为字符串后与 拼接。

函数支持嵌套定义,即函数内部可再定义函数。函数亦可作为参数传递,或作为返回值。

返回值及其他

函数可通过以下方式返回值:

乃得一:返回数值 1

乃得矣:返回函数的最后计算结果。

乃歸:无返回值,直接退出函数。

要使用函数返回值,可使用 。例如:

施「法」。加之以一。加之以一。
取三以施「三法」。名之曰「甲」。

变量作用域

函数内部语句可直接访问外部变量,作用域规则与 Python 类似。函数内部声明的变量在函数返回时销毁。