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.ku...@cl.cam.ac.uk>wrote: > Another experiment may be revealing: > > :t 3 2 > > > > On Fri, Nov 16, 2012 at 7:46 AM, Daryoush Mehrtash <dmehrt...@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.ku...@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 >>> <dmehrt...@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/
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe