[Haskell-cafe] need help with understanding expression

Ramana Kumar Ramana.Kumar at cl.cam.ac.uk
Fri Nov 16 08:56:02 CET 2012


Another experiment may be revealing:

:t 3 2


On Fri, Nov 16, 2012 at 7:46 AM, Daryoush Mehrtash <dmehrtash at 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 at 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 at 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 at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>>
>>
>
>
> --
> Daryoush
>
> Weblog:  http://onfp.blogspot.com/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20121116/fd314010/attachment.htm>


More information about the Haskell-Cafe mailing list