【发布时间】:2018-03-24 07:11:25
【问题描述】:
我正在尝试编写函数 tails,它通过以下方式将字符串转换为字符串列表:
tails "abc" = ["abc", "bc", "c", ""]
这是我的实现:
tails :: [Char] -> [[Char]]
tails (x:xs)
| length (x:xs) == 0 = [""]
| otherwise = (x:xs) : tails xs
正如标题所示,此函数中存在非详尽的模式。不幸的是,我不明白这是怎么回事。
我是 Haskell 的新手...任何帮助将不胜感激!
【问题讨论】:
-
(x:xs)假定列表不为空。 -
使用
-Wall开启警告会发现问题。
标签: haskell functional-programming non-exhaustive-patterns