SML - 如果条件有一些"或"

Tom*_*Tom 1 sml

我想制作一个像这样的if条件:

if

 ((head(c) = 1) or (head(c) = ~1) or (head(c) = ~5) or (head(c) = ~17) or (head(c) = 0))
count +1
else..
Run Code Online (Sandbox Code Playgroud)

功能头返回'a;

它给了我下一个错误:operator is not a function [tycon dismatch] operator:bool in expression

问题是什么?谢谢.

Omr*_*rel 7

我认为它是orelse在SML中调用的.


A. *_*lov 5

它被称为orelse,不只是orandalso不是and.但是,orelseandalso是不是函数.标准ML '97中的编程引用:

特别注意,andalso和orelse不是中缀函数,因为它们的第二个参数并不严格 - 也就是说,它们并不总是强制评估它们的第二个参数 - 并且这些函数不能用严格的编程语言来定义,例如Standard ML.因此,我们不能将op关键字应用于andalso或orelse.