0

Scalaではそれが可能なので、SMLでもこれが可能かどうか疑問に思います。そのようなコードを検討してください。

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

case引数から使用したいの2行目ですelemが、SMLはそれをプレースホルダーとして扱い、冗長な場合にエラーをスローします(3行目)。

それで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 に答える