我想定义函数div
,但得到异常类型的
Error: expression or pattern ends with infix identifier "div"
据我了解,div
不是关键字,而是常规函数。还是我错了?如果是这样,应该可以重新定义此功能。我可以从范围中删除标识符吗? Haskell中是否有类似NoImplicitPrelude的东西?
然后问题采取这种形式:如何删除中缀状态?
答案 0 :(得分:2)
要将前缀标识符用作非前缀,必须将关键字op
放在前面。例如:
val op + = 0
val op div = op *
fun op + (x, y) = op @ (y, x)
fun op div (x, y) = x * y
fun
语法还允许按原样使用中缀运算符定义
fun x / y = x * y
首先,您还可以定义自己的中缀运算符:
infix ++
fun x ++ y = (x + y) - 1
infix times
fun x times y = x * y
编辑:您也可以通过声明nonfix
来删除中缀状态:
nonfix div
fun div x = 1/x
答案 1 :(得分:0)
type elem = {tag:string, attrs: (string*string) list}
nonfix div
fun div attrs : elem = {tag = "div", attrs = attrs}