evn*_*vnu 3 syntax erlang comparator
在Erlang中,使用=>比较两个变量会导致语法错误,您必须使用>=:
1> 10 => 5.
* 1: syntax error before: '>'
2> 10 >= 5.
true
Run Code Online (Sandbox Code Playgroud)
这是为什么?同样适用于<=必须写为=<.这是因为Erlang总是使用这种语法,还是序列=>并>=在其他地方使用?
只是为了确认其他人所说的:我们使用了与Prolog相同的比较运算符.我无法确定它为什么这样做,但一个原因可能是它离开<=并被=>用作"箭头",这可能是有用的.在Prolog中,定义新的运算符非常容易,因此即使它们没有用基本语言定义,它们仍然非常有用:
:- op(Priority, Type, Operator).
Run Code Online (Sandbox Code Playgroud)
<=Erlang中的运算符是二进制生成器,可用于列表/二进制推导.它的工作方式类似于<-二进制文件而不是列表.
好吧,Erlang的语法受Prolog的影响,而Prolog使用相同的约定,这可能就是原因.
我不确定为什么Prolog使用>=和=<; =>并<=没有真正使用.我认为这是因为=>并且<=操作符通常用于逻辑蕴涵,因此使用它们进行比较确实很尴尬,特别是在逻辑编程语言中.它也更漂亮imho:b