私の理解では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
ここで何が間違っていますか?