我的理解是String
Haskell 中的 a 是一个演员列表Char
。所以我应该能够Char -> Whatever
在字符串上映射一个函数,对吧?
testChar :: Char -> String
testChar c = c:c:[]
myFunc :: String -> String
myFunc str = map testChar str
main = do
putStrLn $ myFunc "hi"
当我运行它时,我得到:
Couldn't match type ‘[Char]’ with ‘Char’
Expected type: Char -> Char
Actual type: Char -> String
In the first argument of ‘map’, namely ‘testChar’
In the expression: map testChar str
我在这里做错了什么?