
Duh, I made a typo in my previous emails, I did mean a -> (b -> c) and not a -> (b,c). But you guys quickly corrected that IMHO when reading http://haskell.org/haskellwiki/Currying a newbie like me cannot see the difference between currying and partial application... I quote the text: -------------------- "Currying is the process of transforming a function that takes multiple arguments into a function that takes just a single argument and returns another function if any arguments are still needed. In Haskell, all functions are considered curried: that is, all functions in Haskell take just single arguments. This is mostly hidden in notation, and so may not be apparent to a new Haskeller. Let's take the function div :: Int -> Int -> Int which performs integer division. The expression div 11 2 unsurprisingly evaluates to 5. But there's more that's going on than immediately meets the untrained eye. It's a two-part process. First, div 11 is evaluated and returns a function of type Int -> Int" -------------------- But that is partial application, not currying no... Later in the text tuples are mentioned, but the real definition of currying being -- Hope I get it right this time... curry :: ((a, b) -> c) -> a -> b -> c is not really clear from the article to me...
----- Oorspronkelijk bericht ----- Van: Henning Thielemann [mailto:lemming@henning-thielemann.de] Verzonden: dinsdag, juli 3, 2007 01:48 PM Aan: 'Peter Verswyvelen' CC: Haskell-Cafe@haskell.org Onderwerp: Re: [Haskell-cafe] Haskell's currying and partial application
On Tue, 3 Jul 2007, Peter Verswyvelen wrote:
Ah, thanks for the correction. So if I understand it correctly, this is currying:
See also: http://haskell.org/haskellwiki/Currying http://haskell.org/haskellwiki/Partial_application
and more generally: http://haskell.org/haskellwiki/Category:Glossary