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:
“Six, or at most seven, hours sleep is, for a constancy, as much as you or anybody can want: more is only laziness and dozing, and is, I am persuaded, both unwholesome and stupefying.”
—Philip Dormer Stanhope, 4th Earl Chesterfield (16941773)
“In European thought in general, as contrasted with American, vigor, life and originality have a kind of easy, professional utterance. Americanon the other hand, is expressed in an eager amateurish way. A European gives a sense of scope, of survey, of consideration. An American is strained, sensational. One is artistic gold; the other is bullion.”
—Wallace Stevens (18791955)
“The very natural tendency to use terms derived from traditional grammar like verb, noun, adjective, passive voice, in describing languages outside of Indo-European is fraught with grave possibilities of misunderstanding.”
—Benjamin Lee Whorf (18971934)