私はファンクター、アプリケーションファンクターに注目しています…行きたい場所にたどり着く方法はわかりませんが、タイプに従うことで私はもっと近づくはずだと感じています。
map
2タプルの最初の要素にのみ適用される-alikeを作成する簡単な方法はありますか?first
から取っControl.Arrow
て使用するとArrow (->)
、これでうまくいきます。
map . first :: (b -> c) -> [(b, d)] -> [(c, d)]
私の唯一の懸念は、矢についての本当の直感をまだ得ていないということです。ですから、これを続ければ、遅かれ早かれ深海にいることに気付くでしょう。さらに、これは一般化できないかなり便利なケースのようです。
ファンクターやモナドなどから何かを使って同じ機能を手に入れながら、欲しいものの核心をつかむことはできますか?私はいじっていました
\f -> map (f `on` fst)
-アイデアのようですが、そこに到達することはできませんでした。