Erlang 为什么我在模式匹配上得到非法模式?

Erlang 为什么我在模式匹配上得到非法模式?,erlang,pattern-matching,Erlang,Pattern Matching,你能解释一下查询3>中的非法模式是什么吗?谢谢 要绑定到的变量需要位于左侧,而不是右侧 这是正确的表达: 1> X = 10. 10 2> Y = 9. 9 3> X - 1 = Y. * 1: illegal pattern 4> Y = X - 1. 9 5> 10 - 1 = Y. 9 表达式5是正确的,因为它是模式匹配。用这句话,你是说“我希望Y(9)与10-1(9)相匹配”。绑定变量只是模式匹配的一个特例,在表达式2中,你说的是“我希望9与Y(未绑定)匹

你能解释一下查询
3>
中的非法模式是什么吗?谢谢

要绑定到的变量需要位于左侧,而不是右侧

这是正确的表达:

1> X = 10.
10
2> Y = 9.
9
3> X - 1 = Y.
* 1: illegal pattern
4> Y = X - 1.
9
5> 10 - 1 = Y.
9

表达式5是正确的,因为它是模式匹配。用这句话,你是说“我希望Y(9)与10-1(9)相匹配”。绑定变量只是模式匹配的一个特例,在表达式2中,你说的是“我希望9与Y(未绑定)匹配。”因为它是未绑定的,所以它可以匹配任何东西,然后从此点开始绑定到变量。那么“我希望Y(9)与X-1(9)匹配如何在exp 3?in 5中,shell对您有所帮助,因为它可以看到“模式“可以进行评估,然后检查结果是否为模式。它是
10
。在3中,这是不可能的,因为
X-1
无法解释为模式,它是一个表达式。您可以说模式是描述数据结构的东西,而
X-1
不这样做。5中shell的处理有点混乱,可能不应该这样做。
Y = X - 1.