0

在 Scala 中是可能的,所以我想知道这在 SML 中是否也可能,考虑这样的代码:

fun in_list(elem,coll) =   
  case coll of
      [] => false
    | elem :: tail => true
    | head :: tail => in_list(elem,tail);

case我想使用elemfrom 参数的第二行中,但 SML 将其视为占位符并在冗余情况下抛出错误(第三行)。

那么 - 是否可以在elem这里使用,如果可以,如何使用?

4

1 回答 1

3

不,这是不可能的。您必须使用if

fun in_list(elem,coll) =   
  case coll of
      [] => false
    | head :: tail =>
        if head = elem
        then true
        else in_list(elem,tail)

或者,在这种情况下,您也可以使用逻辑运算符而不是if

fun in_list(elem,coll) =   
  case coll of
      [] => false
    | head :: tail =>
        head = elem orelse in_list(elem,tail)
于 2013-01-23T21:29:09.887 回答