エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
2度のリストの横断を1度にするでおじゃる - 梶本裕介の日記
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
2度のリストの横断を1度にするでおじゃる - 梶本裕介の日記
import Control.Arrow average = sum &&& length >>> uncurry (div) main = print $ average [1, 2, 5, ... import Control.Arrow average = sum &&& length >>> uncurry (div) main = print $ average [1, 2, 5, 7, 10] このaverageはsumとlengthによってリストを2度横断するでおじゃる.これを1度の横断にしたいでおじゃる.sumとlengthはcatamorphismによって, と表せるでおじゃる.ただしでcatamorphismを表し,をで略記し,0を0を返す定数関数とし,をprojectionとし,2項演算子はcurryingされていないとするでおじゃる.を1つのcatamorphismに変形するでおじゃる. = = = = = = ここでFはcatamorphismのbase functorでおじゃる.従ってaverageは次のように書きなおせるでおじゃる. averag