我一直在阅读有关符号语言的工作原理的内容,更加专注于Mathematica。据我所知,求值就是将一系列转换规则应用于输入,直到找不到匹配的转换规则,并将其结果称为“输出”。
但问题来了:当多个转换规则与给定表达式匹配时该怎么办?我先尝试了这个例子:
A[x_, 3] := 0;
A[x_, y_] := 1;
A[a, b]
=> 1
A[k, 3]
=> 0
我相信我可以这样解释:3
比y
更好,因为3
匹配了3
。然后是我的第二个实验:
B[x_, 3] := 0;
B[4, y_] := 1;
B[4, 3]
=> 0
为什么会这样?我本来期望会看到某种错误提示。