Poly ML中的多个条件

时间:2012-10-25 20:10:49

标签: conditional sml ml polyml

例如,如果我想定义一个函数,如果a = b和b = c则返回true;如果Poly ML中的这两个等式都没有,则返回false,我将如何编写它?我不确定如何同时做多个条件。

2 个答案:

答案 0 :(得分: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 *)

这里的要点是:

  • 您可以嵌套条件,即在另一个ifthen案例中有一个else表达式
  • 操作符andalso是布尔连接,当且仅当x andalso y评估为truex评估时,trueytrue

您可以使用case表达式更简洁地说明这一点:

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

答案 1 :(得分:0)

a = b andalso b = c

你想要什么?