Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Haskell: Type inference

Tags: maingt
In previous post, I explain how to specify the signature to a function. But it is optional to specify type to variable, functions. Haskell infer the type, if you don’t specify.

For example,
*Main> let a = 10
*Main> let b = 'a'
*Main> let c = "Hello"
*Main> let d = 10.09
*Main> let e = True
*Main> :t a
a :: Num a => a
*Main> :t b
b :: Char
*Main> :t c
c :: [Char]
*Main> :t d
d :: Fractional a => a
*Main> :t e
e :: Bool

Observe above snippet, I assigned 10 to the variable ‘a’, but not mentioned the data type, Haskell infers ‘a’ is of type Num based on the value assigned to it.

Haskell infer the types to a function also.

is3 x = (x == 3)

addition x y = (x + y)

*Main> :load sample.hs
[1 of 1] Compiling Main ( sample.hs, interpreted )
Ok, modules loaded: Main.
*Main> :t is3
is3 :: (Eq a, Num a) => a -> Bool
*Main> :t addition
addition :: Num a => a -> a -> a

Previous                                                 Next                                                 Home

This post first appeared on Java Tutorial : Blog To Learn Java Programming, please read the originial post: here

Share the post

Haskell: Type inference


Subscribe to Java Tutorial : Blog To Learn Java Programming

Get updates delivered right to your inbox!

Thank you for your subscription