エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
lensの(^?)はなぜGetting (First a) s aを引数に取るのか - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
lensの(^?)はなぜGetting (First a) s aを引数に取るのか - Qiita
結論 Getting (First a) s aはMaybe aを返せるようなPrism' s aの特殊化だから。 (Getting (First a) s... 結論 Getting (First a) s aはMaybe aを返せるようなPrism' s aの特殊化だから。 (Getting (First a) s aはPrism' s a) (^?)とは? Prismのアクセサです。 ちょうどLensの(^.)と同じですが、PrismなのでMaybeで結果を返します。 {-# LANGUAGE TemplateHaskell #-} module Test ( Foo(..) , _Bar , _Baz ) where import Control.Lens (makePrisms) data Foo = Bar Int | Baz Char makePrisms ''Foo -- 以下の関数がコンパイル時に定義される -- _Bar :: (Choice p, Applicative f) => p Int (f Int) -> p Foo