我想制作一个像这样的if条件:
if
((head(c) = 1) or (head(c) = ~1) or (head(c) = ~5) or (head(c) = ~17) or (head(c) = 0))
count +1
else..
函数头返回'a;
它给了我下一个错误:operator is not a function [tycon dismatch]
运营商:布尔
在表达
有什么问题?谢谢。
答案 0 :(得分:7)
我认为它在SML中被称为orelse
。
答案 1 :(得分:5)
它被称为orelse
,而不仅仅是or
和andalso
而不是and
。但orelse
和andalso
不是函数。引自标准ML '97 中的编程:
特别注意,andalso和orelse不是中缀函数,因为它们的第二个参数并不严格 - 也就是说,它们并不总是强制评估它们的第二个参数 - 并且这些函数不能用严格的编程语言定义例如标准ML。因此,我们不能将op关键字应用于andalso或orelse。
答案 2 :(得分:1)
对于此示例,您还可以编写:
let val h = head c in
if List.exists (fn x => x = h) [1, ~1, ~5, ~17, 0]
then count + 1
else ...
end