sml - SML 中的非固定运算符
问题描述
我阅读了的语法,SML
发现旁边infix
还infixr
包含nonfix
. 我试图找到一些基本的例子,但似乎没有人使用它。还试图找到有关该运算符的一些先前线程,但没有。
背后的想法是nonfix
什么?为什么好像没人用?
解决方案
nonfix
将中缀运算符变成元组上的“常规”函数。例如*
是 type 的函数int * int -> int
,但不能称为 eg * (2,3)
。如果出于某种原因您想这样做,您可以执行以下操作:
nonfix *
然后* (2,3)
将评估为 6。
不幸的是,作为一个恼人的副作用,您不能再使用2 * 3
.
它似乎没有被大量使用的原因是,如果我想*
用作常规函数,我可以使用op
:例如,op * (2,3)
评估为 6。以后无法*
用作中缀运算符的烦恼胜过不用打字的好处op
。
推荐阅读
- spring - Spring JPA 数据未按发布顺序插入
- java - 从类名中提取 groupid 和 artifactid
- amazon-web-services - 使用 Athena 查询 S3
- generics - 未处理的异常:类型 '(T) => String' 不是类型 '(Object) => String' 的子类型
- android-studio - 如何在 Android Studio 中引用文件
- python - 如何使用 oslo.concurrency 同步访问 Python 方法?
- javascript - 使用 For 循环动态创建对象
- javascript - React 样式组件中的多个主题
- python - 如何处理用 Python 实现的复杂系统的依赖管理
- python - 在 Python 中将 SuperClass 的对象传递给 SubClass 构造函数