函数是指一个符号后面加若干个括号构成的表达式

f(arg1, arg2, kws*)(arg1, arg2)

这种形式被称为高秩函数(Rank-k Type), 括号的数量就是这个函数的秩

sm 在尝试简化函数时会从高秩规则开始匹配, 然后逐步匹配低秩规则, 穷尽规则就会停止化简

如果秩降为零, 那么就会退化为符号.

f(x_, y_)(z_) := rule_1 % Rank-2
f(x_, y_) := rule_2     % Rank-1

% 高秩规则会优先匹配因此低秩规则不会生效
f(3, 5)(7) <=> rule_1
f(x_)(y_) := rule_1 % Rank-2
f(x_, y_) := rule_2 % Rank-1

% 高秩规则全部匹配失败才会尝试低秩规则
f(3, 5)(7) <=> rule_2(7)

参数项

每个参数包含若干个

  • 必选项 (Arguments)
  • 可选项 (Options)

如果这个函数不处理这个可选项那么会被忽略

sin(pi, base: 10)

#(a+b)&

#*(a+b)&