diff options
author | tomsmeding <tom.smeding@gmail.com> | 2019-11-18 18:36:57 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2019-11-18 18:36:57 +0100 |
commit | 481884fb892f949478dad8d801ced704baea986c (patch) | |
tree | 8c5bcf1d306c8ad3d39d449da8def74cb24dca2d /tests/fiboY.lisp | |
parent | 4746aa52f85f4dc3ce8e195f0a5fd8afe2d54378 (diff) |
Automatic testing of examples
Diffstat (limited to 'tests/fiboY.lisp')
-rw-r--r-- | tests/fiboY.lisp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/fiboY.lisp b/tests/fiboY.lisp new file mode 100644 index 0000000..d12a5ab --- /dev/null +++ b/tests/fiboY.lisp @@ -0,0 +1,24 @@ +(define cadr (l) (car (cdr l))) +(define caddr (l) (car (cdr (cdr l)))) + +(define YY (recur) (lambda (f) (lambda (a) (f ((recur recur) f) a)))) +(define Y (YY YY)) + +(define forX (recur low_high_func) + (if (<= (car low_high_func) (cadr low_high_func)) + (do + ((caddr low_high_func) (car low_high_func)) + (recur (list (+ (car low_high_func) 1) (cadr low_high_func) (caddr low_high_func)))) + '())) + +(define for (Y forX)) + +(define fibohelperX (recur n_a_b) + (if (<= (car n_a_b) 0) (cadr n_a_b) + (recur (list (- (car n_a_b) 1) (caddr n_a_b) (+ (cadr n_a_b) (caddr n_a_b)))))) + +(define fibohelper (Y fibohelperX)) + +(define fibo (n) (fibohelper (list n 0 1))) + +(for (list 1 25 (lambda (n) (print (fibo n))))) |