コード例 #1
0
ファイル: testeval.py プロジェクト: hermetique/dao
 def test_letrec_fac(self):
     from util import m, n, fac
     eq_(
         eval(
             letrec([
                 (fac, lamda([n], if_(eq(n, 1), 1, mul(n, fac(sub(n, 1))))))
             ], fac(3))), 6)
コード例 #2
0
ファイル: testeval.py プロジェクト: hermetique/dao
 def test_letrec_fac(self):
     from util import m, n
     fac = MacroVar('fac')
     eq_(
         eval(
             letrec([
                 (fac, macro([n], if_(eq(n, 1), 1, mul(n, fac(sub(n, 1))))))
             ], fac(3))), 6)
コード例 #3
0
ファイル: testeval.py プロジェクト: hermetique/dao
 def testblock(self):
     f = Var('f')
     foo = Var('foo')
     eq_(
         eval(
             block(
                 foo,
                 let([(f, lamda((), exit_block(foo, 1)))],
                     mul(2, block(foo, f()))))), 1)
コード例 #4
0
ファイル: testeval.py プロジェクト: hermetique/dao
 def test_arithmetic(self):
     eq_(eval(add(1, 2)), 3)
     eq_(eval(sub(1, 1)), 0)
     eq_(eval(mul(2, 2)), 4)
     eq_(eval(div(2, 2)), 1)
コード例 #5
0
ファイル: testeval.py プロジェクト: chaosim/dao
 def test_arithmetic(self):
   eq_(eval(add(1, 2)), 3) 
   eq_(eval(sub(1, 1)), 0)
   eq_(eval(mul(2, 2)), 4)
   eq_(eval(div(2, 2)), 1)
コード例 #6
0
ファイル: testeval.py プロジェクト: chaosim/dao
 def testblock(self):
   f = Var('f')
   foo = Var('foo')
   eq_(eval(block(foo, let([(f, lamda((), exit_block(foo,1)))], 
                           mul(2, block(foo, f()))))), 
       1)
コード例 #7
0
ファイル: testeval.py プロジェクト: chaosim/dao
 def test_letrec_fac(self):
   from util import m, n
   fac = MacroVar('fac')
   eq_(eval(letrec([(fac, macro([n], if_(eq(n,1), 1, mul(n, fac(sub(n, 1))))))],
                 fac(3))), 6)
コード例 #8
0
ファイル: testeval.py プロジェクト: chaosim/dao
 def test_letrec_fac(self):
   from util import m, n, fac
   eq_(eval(letrec([(fac, lamda([n], if_(eq(n,1), 1, mul(n, fac(sub(n, 1))))))],
                 fac(3))), 6)