タグ

ブックマーク / qiita.com/kerupani129 (1)

  • [Haskell] f <$> x <*> y よりも liftA2 f x y の方が計算コストを抑えられることがある - Qiita

    Applicative の値に関数を適用したいとき、liftA2 関数を用いると演算子 <$> を使用するより計算コストを抑えられることがあります。 意味的には liftA2 f x y = f <$> x <*> y です (※定義ではなく、実際の計算方法は異なります) 。 参考「liftA2 - Control.Applicative」 参考「[Haskell] モナド 演算子 まとめ - Qiita」 1. liftA2 関数および liftA3 関数 ここでは説明のため各演算子および関数の型クラス制約を略しますが、型変数 f の型は Functor および Applicative クラスのインスタンスです。 liftA2 関数および liftA3 関数の型は以下のようになっています。 -- Functor (比較用) (<$>) :: (a -> b ) -> f a -> f b

    [Haskell] f <$> x <*> y よりも liftA2 f x y の方が計算コストを抑えられることがある - Qiita
    igrep
    igrep 2023/10/20
    言われてみれば liftA2 は Applicativeのメソッドなので当然各型の特別なバージョンが作れるわけで、それらは1回fmapを介するよりは速そうだなぁ。気づかなかった。
  • 1