Exemple #1
0
 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))
Exemple #2
0
def make_procedure(params, body, env):
    return cons(Symbol('procedure'), 
            cons(params, cons(body, cons(env, EmptyList))))
Exemple #3
0
 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)
Exemple #4
0
def make_begin(seq):
    return cons(Symbol("begin"), seq)
Exemple #5
0
def make_lambda(params, body):
    return cons(Symbol("lambda"), cons(params, body))
Exemple #6
0
 def inner(expr):
     if expr is EmptyList:
         return EmptyList
     return cons(cadar(expr), inner(cdr(expr)))
Exemple #7
0
def make_lambda(params, body):
    return cons(Symbol('lambda'), cons(params, body))
Exemple #8
0
def make_begin(seq):
    return cons(Symbol('begin'), seq)