トップページ > プログラム > 2015年04月13日 > WAzsEDwP

書き込み順位&時間帯一覧

26 位/174 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000100000000000001002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net

書き込みレス一覧

関数型プログラミング言語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になっているのですが)

日本語が分かりにくくて申し訳無いのですが、分かった方はどなたか解説して頂けたら頂けたら嬉しいです…
関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
52 :デフォルトの名無しさん[]:2015/04/13(月) 21:05:27.45 ID:WAzsEDwP
>>50
ありがとうございます!その通りで、おかげで完全に挙動を理解出来ました…!
>>46さんもありがとうございました!


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。