transformers
最近のブログ投稿で、「人々は何のために Control.Applicative.Lift を使用するのですか?」と尋ねた人がいました。私はこれに答えることができなかったので、質問を StackOverflow にエコーします - 何に Control.Applicative.Lift
使用されますか?
パッケージに使用例が 1 つありますが、その機能を完全に解析できるわけではないようです。野生の他の例を知っている人はいますか?
transformers
最近のブログ投稿で、「人々は何のために Control.Applicative.Lift を使用するのですか?」と尋ねた人がいました。私はこれに答えることができなかったので、質問を StackOverflow にエコーします - 何に Control.Applicative.Lift
使用されますか?
パッケージに使用例が 1 つありますが、その機能を完全に解析できるわけではないようです。野生の他の例を知っている人はいますか?
Liftは比較的新しい貢献です。
data Lift f a = Pure a | Other (f a)
つまり、 functor が与えられた場合、純粋な値でf
構成することによって新しい functor を取得できます。f
パッケージ自体は例を示しています:
-- | An applicative functor that collects a monoid (e.g. lists) of errors.
-- A sequence of computations fails if any of its components do, but
-- unlike monads made with 'ErrorT' from "Control.Monad.Trans.Error",
-- these computations continue after an error, collecting all the errors.
type Errors e = Lift (Constant e)
-- | Report an error.
failure :: Monoid e => e -> Errors e a
failure e = Other (Constant e)
ただし、これが実際に使用されているかどうかはわかりません。