def definitionValue(exp): if isSymbol(pair.cadr(exp)): return pair.caddr(exp) return makeLambda(pair.cdr(pair.cadr(exp)), pair.cddr(exp))
def assignmentVariable(exp): return pair.cadr(exp)
def definitionVariable(exp): if isSymbol(pair.cadr(exp)): return pair.cadr(exp) return pair.car(pair.cadr(exp))
def letBindingValues(bindings): if pair.isNull(bindings): return pair.list() return pair.cons(pair.cadr(pair.car(bindings)), letBindingValues(pair.cdr(bindings)))
def procedureParameters(p): return pair.cadr(p)
def continuationImplementation(proc): return pair.cadr(proc)
def primitiveImplementation(proc): return pair.cadr(proc)
def lambdaParameters(exp): return pair.cadr(exp)
def ifPredicate(exp): return pair.cadr(exp)
def textOfUnquotation(exp): return pair.cadr(exp)
def letBindings(exp): return pair.cadr(exp)