【问题标题】:How to use AND operator in IF statements in SML如何在 SML 的 IF 语句中使用 AND 运算符
【发布时间】:2012-11-05 23:46:43
【问题描述】:

我是 SML 的新手。 如何在 IF 语句中使用 AND 运算符? 这是我的代码:

val y = 1;
val x = 2;
if (x = 1 AND y = 2) then print ("YES ") else print("NO ");

我的错误是: 标准输入:66.9-67.3 错误:未绑定的变量或构造函数:AND 标准输入:66.3-67.9 错误:运算符不是函数 [字面量] 运算符:int 表达: 1 标准输入:66.3-67.9 错误:运算符和操作数不一致 [文字] 运算符域:bool * bool 操作数:bool * int 表达: x = (1) y = 2

谢谢

【问题讨论】:

    标签: sml smlnj ml


    【解决方案1】:

    数字门中的一加一总是1;所以 在上述情况下,真和真“必须评估为真,而不是假;我正确吗? 1和0也不能永远是1;

    1或0可以是1;

    【讨论】:

      【解决方案2】:

      我可以不同意 Vishal 的评论吗?

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

      认为(REPL也是如此)

      对也对;

      判断为真,而不是假

      【讨论】:

        【解决方案3】:

        这里有一个例子,它将清除andalso的用法

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-06-08
            • 2012-11-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-01-13
            • 2018-05-16
            相关资源
            最近更新 更多