[Haskell-cafe] Applicative but not Monad

Miguel Mitrofanov miguelimo38 at yandex.ru
Fri Oct 30 14:52:33 EDT 2009


What type is your "return"?

On 30 Oct 2009, at 21:48, Dan Weston wrote:

> Can you elaborate on why Const is not a monad?
>
> return x = Const x
> fmap f (Const x) = Const (f x)
> join (Const (Const x)) = Const x
>
> What am I missing?
>
> Tom Davie wrote:
>> Of note, there is a sensible monad instance for zip lists which I  
>> *think* agrees with the Applicative one, I don't know why they're  
>> not monads:
>> instance Monad (ZipList a) where
>>  return = Ziplist . return
>>  join (ZipList []) = ZipList []
>>  join (ZipList (a:as)) = zlHead a `zlCons` join (map zlTail as)
>> I'll provide an alternative though, Const a is an applicative, but  
>> not a monad.
>> Bob
>> On Fri, Oct 30, 2009 at 5:25 PM, Eugene Kirpichov <ekirpichov at gmail.com 
>>  <mailto:ekirpichov at gmail.com>> wrote:
>>    Yes. ZipList.
>>    http://en.wikibooks.org/wiki/Haskell/Applicative_Functors
>>    2009/10/30 Yusaku Hashimoto <nonowarn at gmail.com
>>    <mailto:nonowarn at gmail.com>>:
>>     > Hello cafe,
>>     > Do you know any data-type which is Applicative but not Monad?
>>     >
>>     > Cheers,
>>     > -~nwn
>>     > _______________________________________________
>>     > Haskell-Cafe mailing list
>>     > Haskell-Cafe at haskell.org <mailto:Haskell-Cafe at haskell.org>
>>     > http://www.haskell.org/mailman/listinfo/haskell-cafe
>>     >
>>    --
>>    Eugene Kirpichov
>>    Web IR developer, market.yandex.ru <http://market.yandex.ru>
>>    _______________________________________________
>>    Haskell-Cafe mailing list
>>    Haskell-Cafe at haskell.org <mailto:Haskell-Cafe at haskell.org>
>>    http://www.haskell.org/mailman/listinfo/haskell-cafe
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list