From 5c8625a1f16b501770dff2f56444436e7004bbb1 Mon Sep 17 00:00:00 2001 From: Jesse McDonald Date: Tue, 20 Apr 2010 23:00:12 -0500 Subject: [PATCH] Check in some sample programs demonstrating the compiler. --- src/examples/fact-iter.rls | 5 +++++ src/examples/fact-recurse.rls | 5 +++++ src/examples/test.rls | 13 +++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 src/examples/fact-iter.rls create mode 100644 src/examples/fact-recurse.rls create mode 100644 src/examples/test.rls diff --git a/src/examples/fact-iter.rls b/src/examples/fact-iter.rls new file mode 100644 index 0000000..6133904 --- /dev/null +++ b/src/examples/fact-iter.rls @@ -0,0 +1,5 @@ +(letrec ([fact-iter (lambda (n product) + (if (fix> n 1) + (fact-iter (fix- n 1) (fix* n product)) + product))]) + (fact-iter (string->number (car argv)) 1)) diff --git a/src/examples/fact-recurse.rls b/src/examples/fact-recurse.rls new file mode 100644 index 0000000..64406cc --- /dev/null +++ b/src/examples/fact-recurse.rls @@ -0,0 +1,5 @@ +(letrec ([fact (lambda (n) + (if (fix> n 1) + (fix* n (fact (fix- n 1))) + 1))]) + (fact (string->number (car argv)))) diff --git a/src/examples/test.rls b/src/examples/test.rls new file mode 100644 index 0000000..1b454d8 --- /dev/null +++ b/src/examples/test.rls @@ -0,0 +1,13 @@ +(let (a [b 3] [c b]) + (if (positive? d) + (+ a b c) + (fn d + (begin + (let ((k (lambda () (set! b 5)))) + (k)) + (set-box! free-var 7) + (set-box! free-var (lambda () 7)) + 8 + (list a (cons b '()))) + (cons c (let (e) e))))) +