!(load "meta.lurk") !(assert-eq 720 (let ((Y '(lambda (fun) ((lambda (F) (F F)) (lambda (F) (fun (lambda (x) ((F F) x))))))) (fact '(lambda (fact) (lambda (n) (if (eq n 0) 1 (* n (fact (- n 1))))))) (fact6 (eval (cons (cons Y (cons fact '())) (cons 6 '()))))) fact6)) !(clear) !(load "meta-letrec.lurk") !(assert-eq 720 (let ((Y '(lambda (fun) ((lambda (F) (F F)) (lambda (F) (fun (lambda (x) ((F F) x))))))) (fact '(lambda (fact) (lambda (n) (if (eq n 0) 1 (* n (fact (- n 1))))))) (fact6 (eval (cons (cons Y (cons fact '())) (cons 6 '()))))) fact6))