【发布时间】:2014-11-12 06:27:55
【问题描述】:
我想要一个函数,你可以在其中输入一个字符串,比如“你好,我 25 岁!”并从中得到一个列表,例如 ["hello","i","am","years","old"]。所以它应该把所有大写字母都放在小写字母中,并删除所有不是字母的东西。它应该只使用 Data.List 和 Data.Char。 我知道我应该在字符串上使用单词然后过滤它,但我就是想不通(是的,我是 Haskell 的新手)。
toString :: String -> [String]
toString str = ...
【问题讨论】:
-
类似
filter (not . null) . map (filter Data.Char.isLower . map Data.Char.toLower) . words。可以将其视为从右到左书写的三个阶段:在每个单词内打破空格,转换为低位并删除多余的单词,然后最终消除空单词。
标签: string list haskell filter