Notes from 10/30/02 - old lisp - asst. 6 is essence of eval from that - they made it slightly more complex - added eval/apply dichotomy - was written in lisp - like ours is written in scheme - self-hosting - static vs dynamic scope - static = associations in area where very was introduced - dynamic = associations with something near it when it's used - lexical = static in this context - only need to look at the program, not run it - equivalence products - problem is multiple representations of the same thing - = for numbers - different types of things have equality tests for that type - equal? - checks for S-expr equality - eq? - great for checking symbols to other symbols - read the reference manual for better understanding - also shows difference between eq? and eqv? - you will usually use eq? and = + its relative - functional programming - "referential transparency" - essentially says you can replace a sub-expr with its value and you get the same result - Scheme says "something that has the same value" instead of "its value" - study Ch. 3.2 - note: material after this point is not on the midterm - association of symbols and values in enviroment gets broken up - old way: symbols --- (via enviroment) ---> values - new way: symbols --- (via enviroment) ---> variables or places --- (via state) ---> values