Pass Types as arguments to a function in Haskell?
Posted
by
Charles Peng
on Stack Overflow
See other posts from Stack Overflow
or by Charles Peng
Published on 2012-04-06T04:52:38Z
Indexed on
2012/04/06
11:29 UTC
Read the original article
Hit count: 234
The following two functions are extremely similar. They read from a [String] n elements, either [Int] or [Float]. How can I factor the common code out? I don't know of any mechanism in Haskell that supports passing types as arguments.
readInts n stream = foldl next ([], stream) [1..n]
where
next (lst, x:xs) _ = (lst ++ [v], xs)
where
v = read x :: Int
readFloats n stream = foldl next ([], stream) [1..n]
where
next (lst, x:xs) _ = (lst ++ [v], xs)
where
v = read x :: Float
I am at a beginner level of Haskell, so any comments on my code are welcome.
© Stack Overflow or respective owner