Am Sonntag, 8. Februar 2009 00:24 schrieb TKM: > Hello, > > I've a small question about the function const. I'm a bit of confused about > how it binds. Let me take the following expression as example: > > const id 1 2 > > If I execute this expression, I will get as answer 2 with Helium. Now is my > question, why doesn't it give me 1 as the answer? Because the type of id > would be: a -> a. So first it would execute id 1 in my opinion. That gives > us 1. And after executing const 1 2 it should give us 1. > > Can somebody explain to me why it does not bind as I expect? (I know I can > do: const (id 1) 2 to get what I want) > > Thank you for your answers. > > Greetz TKM
Function application associates to the left, so f a b c d is the same as (((f a) b) c) d and in your example const id 1 2 === ((const id) 1) 2, so first (const id) is evaluated, that is then applied to 1 and finally the result of const id 1 is applied to 2. Now (const x) === \y -> x, so (const id) 1 is id and id 2 === 2. HTH, Daniel _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
