你如何将这个If转换为模式匹配?

时间:2017-02-12 21:13:59

标签: pattern-matching ml

在ML中工作我有一个递归函数,用if,then,else样式编写。该函数有两个基本情况,Null List和Null尾部列表。第一个基本案例很容易转换为模式匹配样式。

if(Null L) then false

变为

fun oddNum(nil) = false 

我不确定如何在模式匹配样式中编写其他基本情况。

else if (Null tl(L)) then true

我试过这个

| oddNum(nil(tl(L)) = true

我的问题是,在我写第二个基本案例之前,我不知道如何将列表L声明为x :: xs“| oddNum(nil(tl(L))= true”

1 个答案:

答案 0 :(得分:4)

fun oddNum nil = false
  | oddNum (_::nil) = true
  | oddNum (_::_::xs) = oddNum xs