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