Disclaimer: I've not read the standard. Sections are de-sugared depending on which argument you supply: (x^) ==> (^) x (^x) ==> flip (^) x I think this is why they are considered special cases. Prelude> map (^2) [1..10] [1,4,9,16,25,36,49,64,81,100] Prelude> map (flip (^) 2) [1..10] [1,4,9,16,25,36,49,64,81,100] Prelude> map (2^) [1..10] [2,4,8,16,32,64,128,256,512,1024] Prelude> map ((^) 2) [1..10] [2,4,8,16,32,64,128,256,512,1024] On 5/23/07, Chad Scherrer <chad.scherrer@gmail.com> wrote:
On 5/23/07, Philippa Cowderoy <flippa@flippac.org> wrote:
On Wed, 23 May 2007, Chad Scherrer wrote:
Is (^2) really considered currying? As I understand it, this is syntactic sugar for a "section", and might confuse the issue a bit, since it's distinct from ((^) 2).
Sure, but it's (flip (^)) 2.
Well, ok, but you've changed the definition. If it were enough for it to be equivalent to a curried version, we could as well write
sq x = times (x,x) where times (x,y) = x * y
and argue that this is partial application of a curried function because it's equivalent to the curried version you gave. But I guess I'm being a bit pedantic here, and I suspect your definition is exactly how (^2) is desugared.
Chad
-- flippa@flippac.org
Sometimes you gotta fight fire with fire. Most of the time you just get burnt worse though.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe