Send Beginners mailing list submissions to beginners@haskell.org To subscribe or unsubscribe via the World Wide Web, visit http://www.haskell.org/mailman/listinfo/beginners or, via email, send a message with subject or body 'help' to beginners-requ...@haskell.org
You can reach the person managing the list at beginners-ow...@haskell.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Beginners digest..." Today's Topics: 1. Re: lambda notation vs function-argument notation in GHCi (Ozgur Akgun) 2. Re: lambda notation vs function-argument notation in GHCi (Morel Pisum) 3. how monomorphism restriction effects eta reduction (Song Zhang) 4. Re: problem with type (miro) ---------------------------------------------------------------------- Message: 1 Date: Sun, 17 Jun 2012 11:28:26 +0100 From: Ozgur Akgun <ozgurak...@gmail.com> Subject: Re: [Haskell-beginners] lambda notation vs function-argument notation in GHCi To: Morel Pisum <morel.pi...@googlemail.com> Cc: beginners@haskell.org Message-ID: <CALzazPB6uvufwkU4192-=dLOZDBRfpV62tjs3dhbh-SXecO=q...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" http://www.haskell.org/haskellwiki/Monomorphism_restriction On 17 June 2012 08:13, Morel Pisum <morel.pi...@googlemail.com> wrote: > Let's define a function in GHCi: > > > Prelude> let f s n = and (map (==s) n) > > Prelude> :t f > > f :: Eq a => a -> [a] -> Bool > > This is fine. But when I define this function using lambda notation, I > get this > > > Prelude> let f = \s n -> and (map (==s) n) > > Prelude> :t f > > f :: () -> [()] -> Bool > > which is really weird. > > Why does this happen? > > _______________________________________________ > Beginners mailing list > Beginners@haskell.org > http://www.haskell.org/mailman/listinfo/beginners > -- Ozgur Akgun -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120617/ec5d2b65/attachment-0001.htm> ------------------------------ Message: 2 Date: Sun, 17 Jun 2012 12:37:22 +0200 From: Morel Pisum <morel.pi...@googlemail.com> Subject: Re: [Haskell-beginners] lambda notation vs function-argument notation in GHCi To: Ozgur Akgun <ozgurak...@gmail.com> Cc: beginners@haskell.org Message-ID: <4fddb362.9000...@googlemail.com> Content-Type: text/plain; charset=UTF-8 Aaaaah, of course! I didn't think I will ever stumble upon this? Thank you! > http://www.haskell.org/haskellwiki/Monomorphism_restriction > > On 17 June 2012 08:13, Morel Pisum <morel.pi...@googlemail.com> wrote: > >> Let's define a function in GHCi: >> >>> Prelude> let f s n = and (map (==s) n) >>> Prelude> :t f >>> f :: Eq a => a -> [a] -> Bool >> This is fine. But when I define this function using lambda notation, I >> get this >> >>> Prelude> let f = \s n -> and (map (==s) n) >>> Prelude> :t f >>> f :: () -> [()] -> Bool >> which is really weird. >> >> Why does this happen? ------------------------------ Message: 3 Date: Mon, 18 Jun 2012 00:22:40 +0800 From: Song Zhang <vxan...@gmail.com> Subject: [Haskell-beginners] how monomorphism restriction effects eta reduction To: beginners@haskell.org Message-ID: <cacgmeonsqaagoaaztaij7fhkhcrvpykttw8k5fsjfa8k9m5...@mail.gmail.com> Content-Type: text/plain; charset="iso-8859-1" I think monomorphism restriction is for shared evaluation.like following function f xs = let len = genericLength xs in (len, len) from haskell wiki under monomorphism the type is Num t => [b] -> (t, t), if it no monomorphism restriction the type will be (Num t, Num t1) => [b] -> (t, t1) which lead to twice evaluation of len. However I didn't see how the restriction effects eta reduction, when define function like f = show, g = (==) or f = \x -> show x, g = \x -> \y -> (x==y). anyone can explain it to me? Thanks a lot. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120618/d507517c/attachment-0001.htm> ------------------------------ Message: 4 Date: Sun, 17 Jun 2012 20:53:35 +0200 From: miro <miroslav.kar...@gmail.com> Subject: Re: [Haskell-beginners] problem with type To: beginners@haskell.org Message-ID: <4fde27af.1020...@gmail.com> Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Thank you! Miro On 6/17/12 9:08 AM, Morel Pisum wrote: > What you want is probably > > checkNode :: String -> [String] -> Bool > checkNode s nodes = and (map (==s) nodes) > > which returns True iff all nodes equal s. > > >> Am a bit stuck here,... please, what is wrong with this? >> >> checkNode :: String -> [String] -> Bool >> checkNode s nodes = >> [s == node | node<- nodes ] >> >> >> src/me.hs:3:4: >> Couldn't match expected type `Bool' with actual type `[t0]' >> [1 of 1] Compiling Main ( src/me.hs, interpreted ) >> In the expression: [s == node | node<- nodes] >> Failed, modules loaded: none. >> In an equation for `checkNode': >> checkNode s nodes = [s == node | node<- nodes] >> >> thanks, >> Miro > > _______________________________________________ > Beginners mailing list > Beginners@haskell.org > http://www.haskell.org/mailman/listinfo/beginners -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120617/5fce0234/attachment-0001.htm> ------------------------------ _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners End of Beginners Digest, Vol 48, Issue 23 *****************************************