【发布时间】:2020-05-07 15:09:37
【问题描述】:
我有这个“形状”,就像 The Little MLer 所说的那样
datatype 'a pizza =
Bottom
| Topping of ('a * ('a pizza))
还有这个
datatype fish =
Anchovy
| Lox
| Tuna
这是这个数据类型的一个对象
Topping (Tuna, (Topping (Anchovy, Topping (Lox, Topping (Tuna, Bottom)))))
类型为fish pizza。现在,当我尝试这个时
val Topping (f1,f2) = Topping (Tuna, (Topping (Anchovy, Topping (Lox, Topping (Tuna, Bottom)))))
这是警告
stdIn:1.6-514.6 Warning: binding not exhaustive
: Topping (f1,f2) = ...
: val f1 = Tuna : fish
: val f2 = Topping (Anchovy,Topping (Lox,Topping (Tuna,Bottom))) : fish pizza
我需要的是一种访问Tuna 为f1 而f2 将是
(Topping (Anchovy, Topping (Lox, Topping (Tuna, Bottom))))
就像一个列表的头部和尾部。为什么警告?如何获得x::xs 格式以便于头尾操作?
【问题讨论】: