[Haskell-beginners] Simple Continuation question
Tony Morris
tmorris at tmorris.net
Sun Jul 13 07:43:12 UTC 2014
Use cont instead of ContT to construct.
On 13/07/2014 4:47 PM, "martin" <martin.drautzburg at web.de> wrote:
> Yes, this works.
>
> Is this because I was using the Cont monad transformer instead of a plain
> coninutation monad? And with a plain
> continuation monad (String -> String) -> String would have worked?
>
> Does everybody use the transformer these days? Is a plain continuation
> monad still around?
>
> Am 07/12/2014 05:12 PM, schrieb David McBride:
> > It's because the type of f is not (String -> String) -> String
> >
> > It is (String -> Identity String) -> Identity String
> >
> > Do a replacement manually and you'll see that f has to be of type ->
> ContT String Identity String --> ContT (String ->
> > Identity String) -> Identity String)
> >
> > You can see that in the error message Expected type: ContT String
> Identity String, Actual type: ContT Char [] String.
> > The reason why it looks weird is that it is assuming that your monad
> instead of being identity is [], and that the r in
> > "m r" must be a Char in order for that to work. I'm not really sure why
> it chose list, probably type defaulting rules.
> >
> >
> > On Sat, Jul 12, 2014 at 6:24 AM, martin <martin.drautzburg at web.de
> <mailto:martin.drautzburg at web.de>> wrote:
> >
> > Hello all,
> >
> > I just started trying to understand Continuations, but my very first
> exercise already left me mystified.
> >
> > import Control.Monad.Cont
> >
> > resultIs :: Int -> Cont String String
> > resultIs i = ContT $ f
> > where
> > f :: (String -> a) -> a
> > f k = k ("result=" ++ show i)
> >
> > If resultIs returns a Cont String String, then f should be
> (String->String)->String, but that doesn't compile. Why is
> > that so?
> > _______________________________________________
> > Beginners mailing list
> > Beginners at haskell.org <mailto:Beginners at haskell.org>
> > http://www.haskell.org/mailman/listinfo/beginners
> >
> >
> >
> >
> > _______________________________________________
> > Beginners mailing list
> > Beginners at haskell.org
> > http://www.haskell.org/mailman/listinfo/beginners
> >
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20140713/93f60890/attachment.html>
More information about the Beginners
mailing list