Differences between current version and predecessor to the previous major change of StrictEvaluation.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 7 | Last edited on Sunday, March 7, 2004 9:36:53 am | by AristotlePagaltzis | |
Older page: | version 3 | Last edited on Sunday, February 16, 2003 5:32:45 pm | by GlynWebster | Revert |
@@ -1,8 +1,5 @@
-''Strict evaluation''
is an
approach that a ProgrammingLanguage can take
to evaluating expressions. With ''strict evaluation''
the values of sub-expressions are worked out before passing them to operators, the values of parameters are worked out before passing them to functions.
+StrictEvaluation
is the traditional
approach to evaluating expressions in a ProgrammingLanguage
. It means that
the values of sub-expressions are worked out before passing them to operators, and that
the values of parameters are worked out before passing them to functions.
-Strict evaluation
means you can predict the order that expressions will be
-
evaluated in. That makes
other language features like reassignable variables and a conventional I/O system practical.
+This is the norm in imperative programming used in [ProgrammingLanguage]s like [C], [C++] or [Java] and in in "unpure" functional programming used in languages like [ML] and [LISP]. StrictEvaluation
means you can predict the order that expressions will be evaluated in, so
other language features like reassignable variables and a conventional I/O system become
practical.
-If you've used a an ImperativeLanguage like [C]. [C++] or [Java], then this is just what you are used to. It is the norm for imperative languages. [ML] and [Lisp] are [FunctionalLanguage]s with strict evaluation.
-
-The other approach to evaluation is
LazyEvaluation.
+Contrast
LazyEvaluation.