generated at
Applicative Style
Applicative Functorを用いて関数適用を行うこと


こういう形式の書き方を「Applicative Style」と呼ぶ
hs
pure f <*> m1 <*> m2
<*>を連続して使う
hs
f <$> m1 <*> m2
最初だけ<$>を使う
理解する際は、前者を見たほうがわかりやすいmrsekut
実際に書く際は、前者の省略版のような形で、後者を使うことが多いmrsekut


関数適用の一般化と捉える
通常の関数適用
f a b c
のApplicative版として
fa <*> ma <*> mb <*> mc
のように書ける
<*> apply のエイリアスで、関数をapplyしてる、と読めば意味がわかりやすい



do 式を使った書き換え
Applicativeの話なので、Monad (do)は関係ないが、Monadに慣れた人からするとわかりやすいかも知れない
hs
foo = do a <- m1 b <- m2 return $ f a b









参考
applicativeの論文
[| f x1 x2 ... |]
applicative styleの糖衣構文
実用例など
最初の例を実践するためには、Applicativeにする必要はなく、Applyで十分であることがわかるmrsekut