我的问题是,我想将列表["hello","wHatS", "up?"]
的每个小写字母更改为大写字母。haskell:将小写字母更改为字符串列表中的大写字母
map toUpper [x]
不会真的工作...
它应该返回[ “HELLO”, “什么”, “UP?”] ..
我的问题是,我想将列表["hello","wHatS", "up?"]
的每个小写字母更改为大写字母。haskell:将小写字母更改为字符串列表中的大写字母
map toUpper [x]
不会真的工作...
它应该返回[ “HELLO”, “什么”, “UP?”] ..
在类型toUpper
看看,这是Char -> Char
,但你有[[Char]]
。这意味着你在这里有两层列表仿函数,所以你应该映射两次。
出于教学的原因,我们可以在这里使用map
,像这样:
map (map toUpper) yourList
括号中的重要位置,我们给出一个参数map :: (a -> b) -> [a] -> [b]
,并得到[Char] -> [Char]
型(这正是我们所需要的!),因为另一个功能curring。
一旦你了解仿函数,你可能更喜欢fmap
和<$>
这个任务:
(toUpper <$>) <$> yourList
'toUpper'是'字符 - > Char',你'[[字符]',你需要地图两次。 – Mark
map map toUpper [list]? – satubus
几乎;)'地图(映射toUpper)yourList'。 – Mark