Hoogle is also helpful

http://haskell.org/hoogle/?q=%5Bm+a%5D+-%3E+m+%5Ba%5D

2007/5/4, Phlex <[EMAIL PROTECTED]>:
Hello all,

I'm trying to learn haskell, so here's is my first newbie question.
I hope this list is appropriate for such help requests.

I'm trying to write a function with the signature [IO Int] -> IO [Int]

Here is my first attempt :

conv :: [IO Int] -> IO [Int]
conv l = do val <- (head l)
            return (val : (conv (tail l)))

This does not work as I'm consing an Int to an (IO [Int]).
So I tried this :

conv2 :: [IO Int] -> IO [Int]
conv2 l = do val <- (head l)
             rest <- (conv2 (tail l))
             return (val : rest)

That works, but it won't work for infinite lists.
How could I achieve the desired result ?

Thanks in advance,
Sacha
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to