Differences between version 6 and revision by previous author of StrictEvaluation.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 6 | Last edited on Sunday, March 7, 2004 9:28:02 am | by AristotlePagaltzis | Revert |
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.
+An
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 ImperativeProgramming used in languages like [C], [C++] or [Java] and in in "unpure" functional programming used in languages like [ML] and [LISP].
Strict evaluation 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.