コード例 #1
0
ファイル: interpreter.py プロジェクト: mberkanbicer/serval
 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)
コード例 #2
0
ファイル: interpreter.py プロジェクト: mberkanbicer/serval
 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)
             )
コード例 #3
0
def make_lambda(params, body):
    return cons(Symbol('lambda'), cons(params, body))
コード例 #4
0
ファイル: sequence.py プロジェクト: longlongtech/serval
def make_begin(seq):
    return cons(Symbol('begin'), seq)
コード例 #5
0
def make_procedure(params, body, env):
    """Create a list"""
    return cons(Symbol('procedure'),
                cons(params, cons(body, cons(env, EmptyList))))
コード例 #6
0
ファイル: binding.py プロジェクト: mberkanbicer/serval
 def inner(expr):
     if expr is EmptyList:
         return EmptyList
     return cons(cadar(expr), inner(cdr(expr)))
コード例 #7
0
ファイル: lambdaexpr.py プロジェクト: longlongtech/serval
def make_lambda(params, body):
    return cons(Symbol('lambda'), cons(params, body))
コード例 #8
0
ファイル: binding.py プロジェクト: longlongtech/serval
 def inner(expr):
     if expr is EmptyList:
         return EmptyList
     return cons(cadar(expr), inner(cdr(expr)))
コード例 #9
0
ファイル: sequence.py プロジェクト: mberkanbicer/serval
def make_begin(seq):
    return cons(Symbol('begin'), seq)