У меня есть эта «форма» как 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
для упрощения манипуляций "голова-хвост"?