This preview shows pages 1–11. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Click to edit Master subtitle style CS784(pm) Closures and Streams More on Evaluations CS784(pm) 11 CS784(pm) References Structure and Interpretation of Computer Programs (SICP) http://mitpress.mit.edu/sicp/ 1.3 Abstractions w/ HigherOrder Procedures 3.2 The Environment Model of Evaluation 3.5 Streams 4.2 Variations on a Scheme Lazy Evaluation 22 CS784(pm) CS784(pm) Four Types Of Expressions Constants: numbers, booleans. Variables: names for values. Created using the special form define Special forms have special rules for evaluation. Cannot be redefined 15 magic words and, begin, case, cond, define, do, if, 33 CS784(pm) CS784(pm) Mantras of Scheme Every expression has a value except for errors, infinite loops, and define special form Computing the value of a combination (operator operands ) Compute all subexpressions (in any order) Apply the value of the first to the values of the 44 CS784(pm) CS784(pm) Order Of Evaluation The order of evaluation turns out to be of central importance for the strength of the functional paradigm. In this lecture we will study the subject of evaluation order in the functional programming paradigm. This includes an introduction to infinite lists (streams) in Scheme. CS784(pm) 55 CS784(pm) Referential Transparency Two equal expressions can substitute each other without affecting the meaning of a functional program Referential transparency provides for easy equational reasoning about a program does not rely on a particular notion of equality Reference equality, shallow equality and deep equality cannot be distinguished by functional CS784(pm) 66 CS784(pm) Referential Transparency With referential transparency it is possible to perform natural program transformations without any concern for side effects Are these two equivalent? 1. (3*F(a,b)+b) *(3*F(a,b)c) 2. let t be 3*F(a,b) in (t+b)*(t+c) . Depends on the Details of F(x, y). CS784(pm) 77 CS784(pm) 88 Substitution Model of Evaluation No assignments; i.e., no set! Or its equivalent. To apply a compound procedure to arguments, evaluate the body of the procedure with each formal parameter replaced by the corresponding argument (define (square x ) (* x x )) ( ( lambda ( x y ) (+ (square x ) (square y )) ) ( 5 3) 5 ) = (+ (square 2) (square 5)) = (+ (* 2 2) (* 5 5)) = (+ 4 25) CS784(pm) distancebetweenpoints (define square (lambda (x) (* x x))) (define sumofsquares (lambda (x y) (+ (square x) (square y)))) (define distbetweenpts (lambda (x1 y1 x2 y2) (sqrt (sumofsquares ( x1 x2) ( y1 y2))))) 99 CS784(pm) Substitution Model Example the evaluated expressions have "**" before and after ** them....
View
Full
Document
This note was uploaded on 06/02/2011 for the course CS 784 taught by Professor Tkprasad during the Spring '11 term at New York Institute of TechnologyWestbury.
 Spring '11
 tkprasad

Click to edit the document details