更深一步了解函数
自然的函数调用语法
我们已经了解如何使用函数对数据进行操作,比如计算3+2,。在豫言中,我们还可以使用用更加口语化的表达来使用函数。例如,我们或许直接说:
三加二。
我们通过在函数名中插入〇来表示参数的出现位置,豫言编译器会自动理解把写在一起的句子并转换成函数调用。比如,要实现上例的效果,我们可以写
「〇加〇」的定义是「加」。
豫言标准库中对于数值计算提供了以下计算函数
「〇加〇」的类型是从整数到从整数到整数。
「〇减〇」的类型是从整数到从整数到整数。
「〇乘〇」的类型是从整数到从整数到整数。
「〇等于〇」的类型是从整数到从整数到爻。
爻
是一个基础类型,它的值可以是阴(表否定),或者是阳(表肯定)。
巧妙地使用〇符号可以让我们的代码容易阅读,比如我们可以定义自己的特殊语法形式。
〇的〇倍的类型是从整数到从整数到整数。
「〇的〇倍」的定义是
遇到了底数随后
遇到了倍数随后
底数乘倍数。
我们可以用它来计算
打印行使用于(整数表示使用于(三的五倍))。
条件判断
有的时候,我们想要的操作会根据实际情况的不同而做一些调整,比如计算翻番时时,我们可以会根据遇到的不同的数,提前给出一些变化,例如,如果计算一个数的一倍时,我们可以直接跳过乘法计算:
〇的〇倍的类型是从整数到从整数到整数。
「〇的〇倍」的定义是
遇到了底数随后
遇到了倍数随后
如果倍数等于零
那么底数
否则底数乘倍数。
递归函数
在声明了函数的类型后,我们可以在任何地方使用这个函数,包括在定义函数本身的时候。
例如我们可以计算番数。
把〇翻〇番的类型是从整数到从整数到整数。
「把〇翻〇番」的定义是
遇到了底数随后
遇到了番数随后
如果番数等于零
那么底数
否则(把底数翻(番数减一)番)乘二。
打印行使用于(整数表示使用于(把三翻一番))。「:结果 6:」
打印行使用于(整数表示使用于(把三翻二番))。「:结果 12:」
打印行使用于(整数表示使用于(把三翻三番))。「:结果 24:」
打印行使用于(整数表示使用于(把三翻五番))。「:结果 96:」