# Multiple parameters vs anonymous syntax

3 messages
Open this post in threaded view
|

## Multiple parameters vs anonymous syntax

 I'm going through "Haskell Programming from first principles" and in section 7.3 Anonymous Functions there is an exercise on converting multiple parameters to anonymous functions, and it asks:1. Which (two or more) of the following are equivalent?mTh1 x y z = x * y * zmTh2 x y = \z -> x * y * zmTh3 x = \y -> \z -> x * y * zmTh4 = \x -> \y -> \z -> x * y * zSo I created a file, anon.hs (attached):module Anon wheremTh1 x y z = x * y * zmTh2 x y = \z -> x * y * zmTh3 x = \y -> \z -> x * y * zmTh4 = \x -> \y -> \z -> x * y * zI load that into ghci and check the function types:\$ ghci anon.hs GHCi, version 8.2.1: http://www.haskell.org/ghc/  :? for help[1 of 1] Compiling Anon             ( anon.hs, interpreted )Ok, 1 module loaded.*Anon> :t mTh1mTh1 :: Num a => a -> a -> a -> a*Anon> :t mTh2mTh2 :: Num a => a -> a -> a -> a*Anon> :t mTh3mTh3 :: Num a => a -> a -> a -> a*Anon> :t mTh4mTh4 :: Integer -> Integer -> Integer -> IntegerWhy is mTh4 different from the rest?On the flip side If I enter "mTh4 = \x -> \y -> \z -> x * y * z" directly in ghci command line then it has same type as the others:\$ ghciGHCi, version 8.2.1: http://www.haskell.org/ghc/  :? for helpPrelude> mTh4 = \x -> \y -> \z -> x * y * zPrelude> :t mTh4mTh4 :: Num a => a -> a -> a -> a-- Wink _______________________________________________ Beginners mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners anon.hs (184 bytes) Download Attachment