Dav*_*vid 1 haskell linked-list
我想以([a, b, ..., z])相反的顺序生成所有英文字母字符.我该怎么做?
我的解决方案是:
returnPrev c = chr (ord c - 1)
generateList t = unfoldr (\b -> if b == (returnPrev (fst t)) then Nothing else Just (b, returnPrev b)) (snd t)
*Main> generateList ('a', 'z')
"zyxwvutsrqponmlkjihgfedcba"
Run Code Online (Sandbox Code Playgroud)
有更正确的解决方案吗?
对于这种情况,你可以使用['z', 'y' .. 'a'],你将得到你想要的列表,这实际上适用于任何Enum,因为它转换为调用enumFromThenTo 'z' 'y' 'a'.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |