一人Haskell勉強会 1

  • 進捗

・String == [Char]

concat関数にて文字列連結を試したけど

-- concat :: [[a]] -> [a]
main = putStr $ concat ["Hello", " ", "World"]

の出力結果が

Hello World

になったので、この場合だと

concat ["Hello", " ", "World"]
→ concat [['H', 'e', 'l', 'l', 'o'], [' '], ['W', 'o', 'r', 'l', 'd']]
→ ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
→ "Hello World"

・concatMap

-- map :: (a -> b) -> [a] -> [b]
-- concatMap :: (a -> [b]) -> [a] -> [b]
-- hoge :: Char -> String
concat $ map hoge "Hello"
concatMap hoge "Hello"

はどっちも同じ。
concatMapを作った理由はなんだ?

*1:途中からブログに書こうかなって思い立ったのでいきなりこんなページ