関数型プログラミング言語Haskell Part29 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0096デフォルトの名無しさん
2015/07/23(木) 14:03:17.98ID:9NQb4Eqnそういう上手いルール、はモナド則です。(Functor則と合わせて機能する)。
>>95
たとえば identity モナドなら extract は存在します。大事なのは「一般には、モナド M
に対して extract :: M a -> a が定義できない」ということ。 extract の存在を仮定してると
モナドの一般論にはならないわけです。
join :: M(M a) -> M a
の存在は、モナドの構成要件の一つだと言って差し支えないと思います。
Mがモナドであるかぎり必ず存在する。
参考:ttp://hackage.haskell.org/package/base-4.8.1.0/docs/Control-Monad.html#v:join
(さっき挙げたWikibooksのページには、unit + join でやる流儀と unit + bind
でやる流儀の両方が解説されてます。論理的にはどっちで考えても良い。)
■ このスレッドは過去ログ倉庫に格納されています