Penguin
Diff: LazyEvaluation
EditPageHistoryDiffInfoLikePages

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.