我一直在研究“Real World Haskell”,并且一直在研究如何使用 Maybe。我在第 3 章中编写了这种数据类型和相应的函数。本书建议尝试将其转换为使用 Maybe 并摆脱 Nil 类型。我一直在玩这个,但我不知道该怎么做。我试过在不同的地方添加可能,但我真的只是在猜测而不是知道如何去做。
data List a = List a (List a)
| Nil
deriving (Show)
toList :: List a -> [a]
toList (List a Nil) = a:[]
toList (List a as) = a:(toList as)