haskell-ja > Archives > 2009/06/04

2009/06/04 12:50:50 UTCikegami
#
nwn さんへ:あなたの言っていることは正しくて、この文章に書いてあります http://www.soi.city.ac.uk/~ross/papers/Applicative.pdf
#
引用: indeed, any monad can be made Applicative by taking pure = return, and <*> = ap.
#
で、instance Applicative (-> a) where
#
pure = the S combinator, and <*> = the K combinator です
#
もし、議論の続きがあれば、ここに残しておいてください
#
また、見にきます
2009/06/04 14:01:27 UTCnobsun
#
あれ?(-> a)はApplicativeのインスタンスになるんだっけ?
#
((->) a)じゃなくて?
#
((->) a)なら、pureが K で (<*>)が S じゃないかしらん。
2009/06/04 14:05:03 UTCnwn
#
(-> a) もなんとなく Applicative にできそうな気がします(気がするだけだけど)
#
State が逆に進んでいく State モナドっていうのがあったのを思い出した
2009/06/04 14:10:28 UTCnwn
#
http://lukepalmer.wordpress.com/2008/08/10/mindfuck-the-reverse-state-monad/
#
ikegami さんありがとうです。元エントリのほうにもコメントしておきます
2009/06/04 14:16:33 UTCnobsun
#
http://homepages.inf.ed.ac.uk/wadler/papers/essence/essence.ps
#
↑そういえばこれかな
#
なつかしい。やっぱり進歩しとらんなぁ > 儂 orz
2009/06/04 14:21:15 UTCnwn
#
元ネタがあったんですね > 2.8 Variation six: Backwards State
2009/06/04 15:02:09 UTCnwn
#
(-> a) を Applicative にしようと思って Functor にする時点で挫折
2009/06/04 15:12:38 UTCikegami
#
いろいろまちがえてて、んがぐぐ
2009/06/04 15:17:20 UTCikegami
#
(->) a, K, S は nobsun の言うことがあってる
#
でも、あらゆるモナドが Applicative で、その場合 <*> = ap というのはあってる
#
(-> a) を Functor にってのは、圏の逆圏を考えて云々なんだろうけど(おそらく)、眠いので検算はまた次の機会にでも...
#
duarity から、K と S が ((->) a) と (-> a) でいれかわるってのもありそうな話だけど、きちんとたしかめてないです...
#
-> は uncurry して A x B とかすると話がシンプルになるかなとか、妄想