第 3 章:定义和调用函数

这一章计算两个数的平方和。例如,输入 3 和 4,应得到 3 × 3 + 4 × 4 = 25。把这段计算写成函数,就能换一组输入继续使用。

先读懂一个参数的函数

平方函数的定义如下:

「平方」乃化「整数」而「整数」也。
「平方」者会「数」而「乘」于「数」于「数」也。

化「整数」而「整数」 表示接收整数、返回整数。会「数」而…… 给输入参数起名为 「数」,后面的表达式计算返回值。函数体的结果就是函数的结果,不需要另外写返回语句。

调用写成 「平方」于「三」。定义函数使用 ,调用函数使用 ,要分清两者。

接收两个参数

下面是本章的完整程序:

寻观「标准库」之书。

「平方和」乃化「整数」而化「整数」而「整数」也。
「平方和」者会「甲」而会「乙」而
    虑「甲方」者「乘」于「甲」于「甲」而
    虑「乙方」者「乘」于「乙」于「乙」而
    「加」于「甲方」于「乙方」也。

「打印行」于(「整数表示」于(「平方和」于「三」于「四」))。

运行后输出 25。两个 依次接收参数,调用处的两个 按同样的顺序传入 3 和 4。

函数类型也按这个顺序阅读:先接收一个整数,再接收一个整数,最后返回整数。更准确地说,只传入第一个参数时,得到的是一个等待第二个参数的函数。因此 「平方和」于「三」 本身仍然是函数。

用局部名称保存中间结果

虑「甲方」者……而…… 先计算 后的表达式,把结果命名为 「甲方」,然后在 后的表达式中使用它。本例依次得到 甲方 = 9乙方 = 16,最后相加。

这些名称只在对应的局部范围内可用,文件末尾不能直接打印 「甲方」。局部名称特别适合把长表达式拆成几个有明确含义的步骤。

给嵌套调用加括号

「加」于(「乘」于「二」于「三」)于「四」

这表示先算 2 × 3,再加 4。连续的 属于同一串调用;如果要把另一次调用的结果作为参数,就用括号把它括起来。缩进不能改变调用的分组。

练习

定义 「立方」,再写 「立方和」 调用它。输入 2 和 3 时应得到 35。尽量让立方和只负责调用和相加,不重复写两份乘法。需要排查结果时,可以先单独打印两个立方的结果。

上一章 · 下一章:条件判断 · 目录