#> liftM, apを使えば
#まあそうですけど、MonadはFunctorであるっていう説明もしたいんじゃないですかね。後、for文にmapが必要っていうScalaの事情もありそうな。
#> 後、for文にmapが必要っていうScalaの事情もありそうな。
#なるほど。まじっすか。
#「> The precise meaning of generators and guards is defined by translation to invocations of four methods: map, withFilter, flatMap, and foreach.」 http://www.scala-lang.org/files/archive/spec/2.11/06-expressions.html#for-comprehensions-and-for-loops #Monad則から Functor則は導けないんじゃないんでしたっけ。Monad は FUnctor であることを前提にしているから liftM が fmap になるだけで。
#ほうほう。昔からHaskellのMonadがclass Functor m => Monad mなのはそういう意味があるんですね。
#Haskellの仕様で、class Functor m => Monad m だったことはないような。GHCでそうだったことはあるのかなぁ
#そのqiitaの記事に特にScalaの言及ないし、書いた人普段それほどScalaやってるわけでもなさそうだし、Scalaのfor文がー、というの関係ないような
#> Haskellの仕様で、class Functor m => Monad m だったことはないような。
#あれ、そうでしたっけ。。。(汗
#すみません、やっぱり私の勘違いでした。何かを読んだ時に読み間違え + 覚え間違えてしまったようです。
#私も去年くらい?に、(GHCで?)class Functor m => Monad m になる予定?提案された?という話を目にしたような記憶?がありますか。「?」ばかり。
#class Applicative m => Monad mだったらおなじみ7.10から入りましたけどねー
#あー、その Applicative => Monad の記憶だったかも。
#そして class Functor f => Applicative f だから Functor => Applicative => Monad というわけですね。
#もう少し先だけど忘れないように再掲。1月13日(水)大阪「Haskellによる並列・並行プログラミング読書会 #9」 #umekitahs http://umekitahs.connpass.com/event/24298/