# 这是示例代码
# 注释的长度受限, /笑

output(output(1 + 2 * 3 / 4))     # 首先输出`1+2*3/4`为2.5, 之后再输出`2.5`作为输出的长度为3

f(0) = 0             # 定义函数
f(x) = x + f(x - 1)  # 函数可以同名, 之后会自动重载决议
f(x, y) = x + y      # 多个参数也没问题

output(f(10))        # f(10) = 10 + f(9) = 10 + 9 + f(8) = ... = 10+9+8+7+...+1+0 = 55
output(f(1, 2))      # f(1, 2) = 1 + 2 = 3


fib(1) = 1                        # 经典斐波那契数列定义
fib(2) = 1                        # 经典斐波那契数列定义
fib(x) = fib(x - 1) + fib(x - 2)  # 经典斐波那契数列定义
output(fib(20))                   # 不用查表了, 这个值是正确的

exp(x, 0) = 1                   # 递归求幂
exp(x, y) = exp(x, y - 1) * x   # 递归求幂
square(x) = exp(x, 2)           # 嵌套函数调用, 定义平方函数

output(exp(2, square(2)))       # 2^(2^2)


sqrt(x) = sqrt(x, x / 2, 1, 10) # 奇妙的递归求平方根方法, 精度超高, 收敛超快
sqrt(x, s, y, 0) = s
sqrt(x, s, y, n) = sqrt(x, (s + y) / 2, x / ((s + y) / 2), n - 1)

output(sqrt(2), square(sqrt(2)))