【发布时间】:2019-03-12 12:44:18
【问题描述】:
我想创建一个打印列表后缀的 Haskell 函数:
该函数应执行以下操作:
> suffixes "123"
["23","3",""]
> suffixes "1"
[""]
我写了以下代码:
suffixes :: [a] -> [[a]]
suffixes [] = [] : []
suffixes f@(_:t) = f: suffixes t
该函数将输入的字符串或字符打印为后缀,我想将其删除,因此当我输入“123”时,它应该如上所示打印。
你能帮我解决这个问题,让它不会将输入的字符串打印为后缀吗?
【问题讨论】:
-
如果这是为了家庭作业或练习,那么@WillemVanOnsem 的答案似乎是正确的方法,但在实际代码中,您可以考虑使用来自
Data.List的tails编写suffixes = tail . tails。