Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #4
0
 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)
Exemple #5
0
 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)
Exemple #6
0
 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)
Exemple #7
0
 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)
Exemple #8
0
 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)