haskell 如何将一串单词中的每一个第一个字母转换成大写字母?

cuxqih21  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(171)

例如,我有一个字符串“Hello what a nice day”,它应该转换为:“你好,多么美好的一天”。
我想用Map来转换它。
我试过:

upperFirst list = map (\a -> toUpper a) . filter(\(x:sx:xs) -> isSpace x && isLower sx) list

这样我想检查一下,我当前的字符是““,而后面的字符是小写的,但显然它不起作用。
也许有人能帮我解释一下。

y4ekin9u

y4ekin9u1#

您可以使用**words :: String -> [String]unwords :: [String] -> String**将字符串拆分为字符串列表并将其传输回来。然后,您只需转换每个单独的单词,因此:

upperFirst :: String -> String
upperFirst = unwords. … . words

这里我把-部分作为练习。

相关问题