1

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

4

2 回答 2

1

不是吗

a = b andalso b = c

你想要什么?

于 2012-10-26T11:18:06.913 回答
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 *)

这里的要点是:

  • 您可以嵌套条件,即if在另一个表达式thenelsecase中包含一个表达式
  • 运算符andalso是布尔连词,意思x andalso ytrue当且仅当x评估为truey评估为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 *)
于 2012-10-26T07:34:23.653 回答