Sorry wrong paste

Prelude> :t 3 2
3 2 :: (Num a, Num (a -> t)) => t


What does the type mean in plain english?

Daryoush

On Fri, Nov 16, 2012 at 12:00 AM, Daryoush Mehrtash <dmehrtash@gmail.com> wrote:
Yes, same problem, and again I have no idea how to read the type

Prelude> :t max. 3 2
max. 3 2 :: (Ord b, Num a1, Num (a1 -> a -> b)) => a -> b -> b


What does the type mean in plain english?

Daryoush

On Thu, Nov 15, 2012 at 11:56 PM, Ramana Kumar <Ramana.Kumar@cl.cam.ac.uk> wrote:
Another experiment may be revealing:

:t 3 2



On Fri, Nov 16, 2012 at 7:46 AM, Daryoush Mehrtash <dmehrtash@gmail.com> wrote:
I see the point with :t (.)  that 

max.(+1) 2 2

is the same as 

max. 3 2

Which is not what I want.

But I have no idea what the type signature of this expression mean now

Prelude> :t max. 3 2
max. 3 2 :: (Ord b, Num a1, Num (a1 -> a -> b)) => a -> b -> b

Any idea?

Daryoush


On Thu, Nov 15, 2012 at 11:19 PM, Ramana Kumar <Ramana.Kumar@cl.cam.ac.uk> wrote:
Hi Daryoush,

I recommend you try these experiments first, and then reply back if you're still confused.

:t max

:t (+1)

:t max . (+1)

:t (+1) 2

:t (.)


On Fri, Nov 16, 2012 at 7:10 AM, Daryoush Mehrtash <dmehrtash@gmail.com> wrote:
I am having hard time understanding how removing the  outer parenthesis in

(max.(+1)) 2 2 

to 

max.(+1) 2 2 

changes the meaning of expression.

My expectation was that "max.(+1) takes two numbers and returns the max as defined in the type:

:t max.(+1)
max.(+1) :: (Ord b, Num b) => b -> b -> b



With parenthesis it does what I expect it to:


Prelude> :t (max.(+1)) 2 2
(max.(+1)) 2 2 :: (Ord b, Num b) => b
Prelude>  (max.(+1)) 2 2
3


But if I remove the parenthesis I get a beast that I have no idea what its type signature mean any more

Prelude> :t (max.(+1)) 2 2
(max.(+1)) 2 2 :: (Ord b, Num b) => b
Prelude> :t max.(+1) 2 2
max.(+1) 2 2 :: (Ord b, Num a1, Num (a1 -> a -> b)) => a -> b -> b


How did removal of parenthesis changed the meaning?      How do you interpret the type:  "(Ord b, Num a1, Num (a1 -> a -> b)) => a -> b -> b"?

Thanks



--
Daryoush

Weblog:  http://onfp.blogspot.com/

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe





--
Daryoush

Weblog:  http://onfp.blogspot.com/




--
Daryoush

Weblog:  http://onfp.blogspot.com/



--
Daryoush

Weblog:  http://onfp.blogspot.com/