次世代言語18 V Julia 他at TECH
次世代言語18 V Julia 他 - 暇つぶし2ch768:デフォルトの名無しさん
19/10/19 10:16:08.33 QmPBAH4r.net
モナド警察現るw
モナド = bindableでもいいけどbindって何?ってなるだろ
flatmapはmapの続きで理解できるからbindって言葉よりも理解しやすい
Optional<T>を例にすると
mapはOptional<T> -> ( T -> U ) -> Optional<U>
Optional<T>とTをUに変換する関数を受け取ってOptional<U>を返す
flatmapはOptional<T> -> ( T -> Optional<U> ) -> Optional<U>
Optional<T>とTをOptional<U>に変換する関数を受け取ってOptional<U>を返す
mapの場合、受け取る関数が( T -> Optional<U> )だと結果がOptional<Optional<U>>になって二重に包まれる
flatmapはこういう二重に包まれた結果にならないようmapする機能とネストした型をflattenする機能が合体したもの
IOやStateには当てはまらないとかいう奴も居るけど
mapだとIO<IO<T>>になるところをflattenしてIO<T>にするのは同じ
flattenするルールが包みの種類によって違うだけ


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch