- 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
45 :デフォルトの名無しさん[]:2015/04/13(月) 07:16:38.90 ID:WAzsEDwP - Haskell 初心者です。分からない事があるのですが、すごいHaskell本のp93の
import Data.List wordNums :: String -> [(String,Int)] wordNums = map (\ ws -> (head ws, length ws)) . group . sort . words このwordNums関数がよく分かりません、wordNums関数を使う場合、何故String(=[Char]?)を渡してwords関数がちゃんと適用されるのでしょうか? mapの定義は map :: (a -> b) -> [a] -> [b] map f xs = foldr (\ x acc -> f x : acc) [] xs こんな感じだと思っているのですが、 それだとStringの一文字毎にfが適用されていく事になり全く意味が無いと思ってしまいます…(実際はちゃんと文字列に対するwordsになっているのですが) 日本語が分かりにくくて申し訳無いのですが、分かった方はどなたか解説して頂けたら頂けたら嬉しいです…
|