def test_define_recursive(self): eq_(eval(begin(define(f, function(((2,), 2), ((x,), f(x-1)))), f(4))), 2)
def test_let_in_module(self): a, m1, m2 = Var('a'), Var('m1'), Var('m2') eq_(eval(let([(m1,module(define(a,1), let([(a,2)], define(a,3))))], from_(m1,a))), 1)
def testdefine(self): eq_(eval(begin(define(x,1),define(x,2))), 2)
def test_embeded_module(self): a, m1, m2 = Var('a'), Var('m1'), Var('m2') eq_(eval(let([(m1,module(define(a,1),define(m2, module(define(a,2)))))], from_(from_(m1,m2),a))), 2)
def testfrom(self): a, m = Var('a'), Var('m') eq_(eval(let([(m,module(define(a,1)))], from_(m,a))), 1)
def testbindings(self): a = Var('a') m1 = eval(module(define(a,1))) ok_(a in m1.bindings)
def test_define_recursive(self): eq_( eval( begin(define(f, function(((2, ), 2), ((x, ), f(x - 1)))), f(4))), 2)
(sexpression1, sexpression, bracket_expression, punct_expression, sexpression_list, atom, maybe_spaces, eval_parse_result) = vars( 'sexpression1, sexpression, bracket_expression, punct_expression, sexpression_list, ' 'atom, maybe_spaces, eval_parse_result') _ = DummyVar('_') def from_sexp(var): return from_(sexpression_module, var) defines = in_module(sexpression_module, define(atom, function( ([x], integer(x)), ([x], dqstring(x)), ([x], symbol(x)) )), define(bracket_expression, function( ([exp_list], and_p(char('('), spaces0(_), from_sexp(sexpression_list)(exp_list), spaces0(_), char(')'))), ([exp_list], and_p(char('['), spaces0(_), from_sexp(sexpression_list)(exp_list), spaces0(_), char(']'))))), define(punct_expression, function( ([L(quote, exp)], and_p(char("'"), from_sexp(sexpression)(exp))), ([L(quasiquote, exp)], and_p(char("`"), from_sexp(sexpression)(exp))), ([L(unquote_splice, exp)], and_p(literal(",@"), from_sexp(sexpression)(exp))), ([L(unquote, exp)], and_p(char(","), from_sexp(sexpression)(exp))))), define(sexpression_list, function( ([Cons(exp, exp_list)], and_p(from_sexp(sexpression)(exp), from_sexp(maybe_spaces)(), from_sexp(sexpression_list)(exp_list))),