我的问题是,我想将列表["hello","wHatS", "up?"]
的每个小写字母更改为大写字母。
map toUpper [x]
无法正常工作......
答案 0 :(得分:6)
查看toUpper
的类型,Char -> Char
,但您有[[Char]]
。这意味着你在这里有两层list functor,所以你应该将它映射两次。
出于教学原因,我们可以在这里使用map
,如下所示:
map (map toUpper) yourList
括号在这里很重要,我们给map :: (a -> b) -> [a] -> [b]
一个参数,并得到另一个类型为[Char] -> [Char]
的函数(正如我们所需要的!)因为有限制。
了解仿函数后,您可能更愿意fmap
和<$>
执行此任务:
(toUpper <$>) <$> yourList