You can also peruse SICP for knowing about how lazy evaluation works.  The explanations are nice.  It is in lisp, though.

https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5

On Mon, Aug 17, 2015 at 2:12 PM, akash g <akaberto@gmail.com> wrote:
Hi Rein,

The initial version which the OP posted doesn't have a terminal value.   The OP had posted the version that he'd wanted clarification on.

On Mon, Aug 17, 2015 at 12:40 PM, Rein Henrichs <rein.henrichs@gmail.com> wrote:
It will absolutely work. Lists can be infinite in Haskell and infinite lists are productive:

λ> take 5 oddsFrom3
[3,5,7,9,11]


On Mon, Aug 17, 2015 at 12:05 AM Debdut Karmakar <debdutk@gnulinuxed.tk> wrote:

On 2015-08-17 02:35, akash g wrote:

Not a problem.  And I should have thought about what you wanted too. 

This version will give you an infinite list of odd numbers from 3.


On Mon, Aug 17, 2015 at 12:02 PM, Debdut Karmakar <debdutk@gnulinuxed.tk> wrote:

Sorry, I wrote a wrong function, the correct version is:

oddsFrom3 :: [Integer]
oddsFrom3 = 3 : map (+2) oddsFrom3

--

A GNU Linux Patron


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners

I know that it will evaluate to a list of odd numbers >= 3, but how?

Thanks, anyway.

--

A GNU Linux Patron

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners