我是SML的新手。 如何在IF语句中使用AND运算符? 这是我的代码:
val y = 1;
val x = 2;
if (x = 1 AND y = 2) then print ("YES ") else print("NO ");
我的错误是: stdIn:66.9-67.3错误:未绑定的变量或构造函数:AND stdIn:66.3-67.9错误:运算符不是函数[literal] operator:int 表达式: 1 stdIn:66.3-67.9错误:运算符和操作数不一致[literal] 运营商域名:bool * bool 操作数:bool * int 表达式: x =(1)y = 2
谢谢
答案 0 :(得分:8)
SML中没有AND
运算符(除非您自己定义一个)。有and
个关键字,但您不能在if
语句中使用它(或通常作为任何表达式的一部分),因为它不是运算符。它与fun
结合使用来定义相互递归的函数。
你可能正在寻找andalso
运算符,它接受两个布尔操作数,当且仅当两个操作数都为真时返回true。
答案 1 :(得分:0)
我可否不同意维沙尔的评论?
*-true andalso true ;
val it = false : bool
-true andalso false ;
val it = false : bool*
我认为(以及REPL也是如此)
是真的,也是如此;
评估为真,而不是假
答案 2 :(得分:-1)
这里有一个例子,它将清除andalso
的用法-true andalso true ;
val it = false : bool
- true andalso false ;
val it = false : bool
答案 3 :(得分:-1)
数字门中的一个和一个总是1;因此 在上述情况下,真实也是真实的“必须评估为真,而不是虚假;我是否正确? 1和0也不能永远不是1;
1或0可以是1;