Note from 10/23/02 - first example of internal define - nested definition gets variables from outer function - saw it as an example to change recursive call where the function was constant, ie called with the same arguments - can also use it to improve efficiency - define a value that gets used several times - can't put a define everywhere - syntax is not 'normal' or expected - can only be put in a few specified places (mainly right inside another define) - holdover from historical lisp days - alternate form is called let - is a special form (doesn't follow normal eval rules) - pairs of expression-values in a list, followed by a body where you can use these definitions - more logical syntax - can also put anywhere, unlike the define - has its own nice paranthesis structure - note that let needs lambdas if you do functions in it - can't use the shorthand (define (f x)...) - also note that the power of let has always been there, in the form of lambdas - you will use both let and define, for different reasons - book points out the usual distinction, between using let for 'variables' and internal define for functions