Exemplo n.º 1
0
 def _eval_binding(self, expr, env):
     # return an application
     return self._eval(
         cons(lambdaexpr.make_lambda(binding.binding_variables(expr),
                                     binding.binding_body(expr)),
              binding.binding_values(expr)),
         env)
Exemplo n.º 2
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)
             )
Exemplo n.º 3
0
def make_lambda(params, body):
    return cons(Symbol('lambda'), cons(params, body))
Exemplo n.º 4
0
def make_begin(seq):
    return cons(Symbol('begin'), seq)
Exemplo n.º 5
0
def make_procedure(params, body, env):
    """Create a list"""
    return cons(Symbol('procedure'),
                cons(params, cons(body, cons(env, EmptyList))))
Exemplo n.º 6
0
 def inner(expr):
     if expr is EmptyList:
         return EmptyList
     return cons(cadar(expr), inner(cdr(expr)))
Exemplo n.º 7
0
def make_lambda(params, body):
    return cons(Symbol('lambda'), cons(params, body))
Exemplo n.º 8
0
 def inner(expr):
     if expr is EmptyList:
         return EmptyList
     return cons(cadar(expr), inner(cdr(expr)))
Exemplo n.º 9
0
def make_begin(seq):
    return cons(Symbol('begin'), seq)