Laziness in Eager Languages
- Python
In Python 2.x the range function computes a list of integers (eager or immediate evaluation):
In Python 3.x the range function returns an iterator which computes elements of the list on demand (lazy or deferred evaluation):
- This change to lazy evaluation saves execution time for large ranges which may never be fully referenced and memory usage for large ranges where only one or a few elements are needed at any time.
Python manifests lazy evaluation by implementing iterators (lazy sequences) unlike tuple or list sequences. For instance:
>>> list = range(10) >>> iterator = iter(list) >>> print list >>> print iterator- The above example shows that lists are evaluated when called, but in case of iterator, the first element '0' is printed when need arises.
| This section requires expansion. |
Read more about this topic: Lazy Evaluation
Famous quotes containing the words laziness, eager and/or languages:
“From passions grow opinions; intellectual laziness lets these harden into convictions.”
—Friedrich Nietzsche (18441900)
“I am grown by sympathy a little eager and sentimental, but leave me alone, and I should relish every hour and what it brought me, the pot-luck of the day, as heartily as the oldest gossip in the bar-room.”
—Ralph Waldo Emerson (18031882)
“It is time for dead languages to be quiet.”
—Natalie Clifford Barney (18761972)