def _list_of_values(self, expressions, env): if procedure.no_operands(expressions): return EmptyList else: return cons( self._eval(procedure.first_operand(expressions), env), self._list_of_values(procedure.rest_operands(expressions), env))
def make_procedure(params, body, env): return cons(Symbol('procedure'), cons(params, cons(body, cons(env, EmptyList))))
def _eval_binding(self, expr, env): return self._eval( cons(lambdaexpr.make_lambda(binding.binding_variables(expr), binding.binding_body(expr)), binding.binding_values(expr)), env)
def make_begin(seq): return cons(Symbol("begin"), seq)
def make_lambda(params, body): return cons(Symbol("lambda"), cons(params, body))
def inner(expr): if expr is EmptyList: return EmptyList return cons(cadar(expr), inner(cdr(expr)))
def make_lambda(params, body): return cons(Symbol('lambda'), cons(params, body))
def make_begin(seq): return cons(Symbol('begin'), seq)