如何在SML的IF语句中使用AND运算符

如何在SML的IF语句中使用AND运算符,sml,smlnj,ml,Sml,Smlnj,Ml,我是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错误:未绑定变量或构造函数:和 stdIn:66.3-67.9错误:运算符不是函数[文字] 接线员:int 在表达上: 1. stdIn:66.3-67.9错误:运算符和操作数不一致[文字] 操作员域:bool*boo

我是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错误:未绑定变量或构造函数:和 stdIn:66.3-67.9错误:运算符不是函数[文字] 接线员:int 在表达上: 1. stdIn:66.3-67.9错误:运算符和操作数不一致[文字] 操作员域:bool*bool 操作数:bool*int 在表达上: x=(1)y=2


谢谢

SML中没有
操作符(除非您自己定义一个)。有一个
关键字,但不能在
if
语句中使用它(或通常作为任何表达式的一部分),因为它不是运算符。它与
fun
一起用于定义相互递归的函数


您可能正在寻找
andalso
运算符,该运算符接受两个布尔操作数,当且仅当两个操作数均为true时才返回true。

下面的示例将清除andalso的用法

-true andalso true ;
val it = false : bool
- true andalso false ; 
val it = false : bool

我可以不同意维沙的评论吗

*-true andalso true ;     
val it = false : bool
-true andalso false ;  
val it = false : bool*
我认为(REPL也是这样认为的)

真的,也是真的


计算为真,而非假

数字门中的一和一始终为1;因此 在上述情况下,true和also-true“必须评估为true,而不是false;我是对的吗? 1和0也不能永远是1

1或0可以是1