CS 342 Lecture -*- Outline -*- * the SASL interpreter ** thunks = expression + environment note: different case from closure in a closure expression has to be lambda (parameters + body) *** printing thunks prValue doesn't get their value... *** evaluation evalList makes list of thunks variables used as expressions are forced (evalThunk, p. 169) note how memoization is done can a thunk ever evaluate to a thunk? yes, e.g., (car l) where l denotes a thunk but applyValueOp calls evalThunk before returning a car or cdr what about x where x denotes the thunk <| y, {y |->1} |>?