Well, yes add1 and add2 are equivalent. You can use either one or the other.
The type annotation can be read:
for all type 'a' such as 'a' is an instance of class Num, there exists a function add1 that takes an 'a' and returns an 'a'.
Are the following two functions equivalent? (i.e. do they describe the
same computation)
let add1 a = a + 2
let add2 = \ a -> a + 2
:t add1
add1 :: forall a. (Num a) => a -> a
:t add2
add2 :: forall a. (Num a) => a -> a
Does Haskell interpreter convert all functions in the form of add1 to
the lambda form of add2?
Does this lambda form represent the operational semantics of Haskell?
How should I translate the type information into English?
Thanks
Pat
This message has been scanned for content and viruses by the DIT Information Services E-Mail Scanning Service, and is believed to be clean. http://www.dit.ie
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe