【问题标题】:Multiple Conditionals in Poly MLPoly ML 中的多个条件
【发布时间】:2012-10-16 02:26:45
【问题描述】:

例如,如果我想定义一个函数,它在 a=b 和 b=c 时返回 true,如果在 Poly ML 中这些等式都不为真,则返回 false,我将如何编写它?我不确定如何同时执行多个条件。

【问题讨论】:

  • 如果只有一个等式为真,你想返回什么?
  • 只是“假”?虽然,我四处打听,似乎是这样,而且也是可以使用的东西。

标签: conditional sml ml polyml


【解决方案1】:

我相信这可以满足您的需求:

fun f (a, b, c) = 
  if a = b andalso b = c
  then true
  else
    if a <> b andalso b <> c
    then false
    else ... (* you haven't specified this case *)

这里的要点是:

  • 您可以嵌套条件,即在另一个 thenelse 大小写中包含一个 if 表达式
  • 运算符andalso 是布尔连词,这意味着x andalso ytrue 当且仅当x 计算结果为true 并且y 计算结果为true

您可以使用case 表达式更简洁地表达:

fun f (a, b, c) =
  case (a = b, b = c) of
    (true, true) => true
  | (false, false) => false
  | _ => (* you haven't specified this case *)

【讨论】:

    【解决方案2】:

    不是

    a = b andalso b = c
    

    你想要什么?

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 2017-02-26
      • 2013-04-09
      • 2018-06-17
      • 2014-02-14
      • 1970-01-01
      相关资源
      最近更新 更多