haskell-ja > Archives > 2016/01/06

2016/01/06 02:47:45 UTChiratara
#
> liftM, apを使えば
#
まあそうですけど、MonadはFunctorであるっていう説明もしたいんじゃないですかね。後、for文にmapが必要っていうScalaの事情もありそうな。
2016/01/06 02:50:11 UTCigrep
#
> 後、for文にmapが必要っていうScalaの事情もありそうな。
#
なるほど。まじっすか。
2016/01/06 03:06:15 UTChiratara
#
「> 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
2016/01/06 03:35:37 UTC[1..100]>>=pen
#
Monad則から Functor則は導けないんじゃないんでしたっけ。Monad は FUnctor であることを前提にしているから liftM が fmap になるだけで。
2016/01/06 03:46:06 UTCigrep
#
ほうほう。昔からHaskellのMonadがclass Functor m => Monad mなのはそういう意味があるんですね。
2016/01/06 04:05:07 UTCnobsun
#
Haskellの仕様で、class Functor m => Monad m だったことはないような。GHCでそうだったことはあるのかなぁ
2016/01/06 04:11:50 UTCxuwei_k
#
そのqiitaの記事に特にScalaの言及ないし、書いた人普段それほどScalaやってるわけでもなさそうだし、Scalaのfor文がー、というの関係ないような
2016/01/06 04:26:32 UTCigrep
#
> Haskellの仕様で、class Functor m => Monad m だったことはないような。
#
あれ、そうでしたっけ。。。(汗
2016/01/06 04:33:23 UTCigrep
#
すみません、やっぱり私の勘違いでした。何かを読んだ時に読み間違え + 覚え間違えてしまったようです。
2016/01/06 04:41:45 UTC[1..100]>>=pen
#
私も去年くらい?に、(GHCで?)class Functor m => Monad m になる予定?提案された?という話を目にしたような記憶?がありますか。「?」ばかり。
2016/01/06 04:47:20 UTCigrep
#
class Applicative m => Monad mだったらおなじみ7.10から入りましたけどねー
2016/01/06 04:49:29 UTC[1..100]>>=pen
#
あー、その Applicative => Monad の記憶だったかも。
2016/01/06 05:02:34 UTC[1..100]>>=pen
#
そして class Functor f => Applicative f だから Functor => Applicative => Monad というわけですね。
2016/01/06 05:31:19 UTC[1..100]>>=pen
#
もう少し先だけど忘れないように再掲。1月13日(水)大阪「Haskellによる並列・並行プログラミング読書会 #9」 #umekitahs http://umekitahs.connpass.com/event/24298/