Differences between version 2 and previous revision of LazyEvaluation.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 2 | Last edited on Sunday, February 16, 2003 5:31:15 pm | by GlynWebster | Revert |
Older page: | version 1 | Last edited on Sunday, February 16, 2003 5:24:37 pm | by GlynWebster | Revert |
@@ -1,8 +1,8 @@
+''Lazy evaluation'' is an approach that a ProgrammingLanguage can take to evaluating expressions. With ''lazy evaluation'' a function is passed whole expressions as arguments, and does not evaluate them until it needs their values. (I won't go into __why__ you'd want that, but there are good reasons.)
+[Haskell] is the most widely used lazy FunctionalLanguage.
-''Lazy evaluation'' is an approach that a ProgrammingLanguage can take to evaluating expressions
. With ''lazy evaluation'' functions is passed whole expressions as parameters, and
do not evaluate them until it need
their values
. (I won't go into __why__
you'd want
that, but there are good reasons
.)
-
-[
Haskell] is the most widely used lazy FunctionalLanguage
.
+You could call [C]
's __&&__ and __||__ operators lazy operators
. They
do not always
evaluate their second arguments
. This is is built-in feature of C though,
you cannot define your own operators
that work that way
. In
Haskell you can
.
-I/O is problematic in lazy languages. Programmers needs to provide some way to keep I/O operations in the correct sequence -- lazy
languages don't assume a linear flow of time,
you have to model that explictly
in your programs! Haskell uses a data structure called the [Monad] to control sequential operations.
+I/O is problematic in lazy languages. Programmers needs to provide some way to keep I/O operations in the correct sequence. Lazy
languages don't assume a linear flow of time:
you have to model that explicitly
in your programs! Haskell uses a data structure called the [Monad] to control sequential operations.