Well, it won't work. Oh, it will compile and you can run it too (stuck in a infinte loop if you try to force it in any way). Compilation happens because this satisfies the type solver. However, the compiler cannot ensure non-termination of said program. Just unrolling it should show you what's wrong with it. Unroll once: oddsForm3 = map (+2) (map (+2) oddsForm3) Unroll again: oddsForm3 = map (+2) (map (+2) (map (+2) oddsForm3) And you can keep on going. It will never evaluate to a terminal value. On Mon, Aug 17, 2015 at 11:55 AM, Debdut Karmakar <debdutk@gnulinuxed.tk> wrote:
I am a haskell beginner and wondering how the following function works (in procedure) :
oddsFrom3 :: [Integer] oddsFrom3 = map (+2) oddsFrom3
Thanks for your help.
_______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners