我读了SML
的语法,我发现在infix
和infixr
旁边它还包含nonfix
。我试图找到一些基本的例子,但似乎没有人使用它。还尝试找到一些关于该运算符的先前线程,但没有。
nonfix
背后的想法是什么?为什么似乎没有人使用它?
nonfix
将一个中缀运算符转换为元组的“常规”函数。例如,*
是int * int -> int
类型的函数,但不能称为例如* (2,3)
。 nonfix *
。如果由于某种原因您想要这样做,您可以执行以下操作:
* (2,3)
然后2 * 3
将评估为6。
不幸的是,作为烦人的副作用,你不能再使用*
了。
它似乎没有被大量使用的原因是,如果我想使用op
作为常规函数,我可以使用op * (2,3)
:例如,*
评估为6.以后无法使用op
的烦恼作为中缀运算符胜过不必键入qazxswpoi的优势。