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

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

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



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

書き込みレス一覧

関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
48 :デフォルトの名無しさん[]:2015/04/13(月) 13:56:46.50 ID:H7xRrVnS
>>45
そこんところに適用されていく様子が書いてあるでしょ。
wordNums "wa wa wee wa"なら

words "wa wa wee wa"  → ["wa", "wa", "wee", "wa"]
sort ["wa", "wa", "wee", "wa"] → ["wa", "wa", "wa", "wee"]
group ["wa", "wa", "wa", "wee"] → [ ["wa","wa","wa"], ["wee"] ]
map (¥ws->(head ws, length ws)) [ ["wa","wa","wa"], ["wee"] ] → [("wa",3),("wee",1)]

で、一目瞭然だと思うんだけどなにが分かんないの?
ポイントフリーだから混乱してるとかそういう話?

wordNums xs = map (¥ ws -> (head ws, length ws)) $ group $ sort $ words xs

敢えて最後に引数補ってこう書いてあればわかったりするのかしら。
関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
50 :デフォルトの名無しさん[]:2015/04/13(月) 18:51:08.84 ID:H7xRrVnS
>>49
こんなんで辞職に追い込まれないだろw

で、>>45の疑問がわかった気がする。wordsNumの定義を
(f = ¥ ws -> (head ws, length ws) として)

map (f . group . sort . words)

だと思ってるんだな。
String(=[Char])に対して、合成された関数をmapしてるかのように読んでるんだろう。
正しい構文解析はそうではなくて

(map f) . group . sort . words

だというだけの話だ(関数適用の結合は関数合成演算子より強いのでそうなる)。


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