From e15cb4e3aa0d331b57db7d9adb7aae9d3044eb2b Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Wed, 10 May 2023 11:03:36 -0400 Subject: [PATCH] reach fibonacci function; document --- README.md | 18 +++++++++++------- mumble | Bin 125360 -> 125360 bytes src/mumble.c | 9 +++++++++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 14f2a67..0846040 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## About -This is a Lisp written in C. It follows the outline in this [Build Your Own Lisp](https://buildyourownlisp.com/chapter11_variables) book, though it then adds some small tweaks and improvements and quality of life improvements: +This is a Lisp written in C. It follows the outline in this [Build Your Own Lisp](https://buildyourownlisp.com) book, though it then adds some small tweaks and improvements and quality of life improvements: - A makefile - Configurable verbosity levels @@ -68,28 +68,32 @@ mumble> join { {1 2} {3 4} } mumble> def {x} { 100 } mumble> def {y} 100 mumble> (x y) -mumble> VERBOSITY=0 -mumble> VERBOSITY=1 mumble> VERBOSITY=2 mumble> def {sq} (@ {x} {* x x}) mumble> sq 44 +mumble> VERBOSITY=1 mumble> def {sqsum} (@ {x y} {(+ (sq x) (sq y))}) mumble> sqsum 2 3 +mumble> VERBOSITY=0 mumble> def {init} (@ {xs} { list((head xs)) } ) mumble> def {unwrap} (@ {x} { head (list xx) } ) mumble> init {1 2} mumble> ifelse 1 2 3 mumble> ifelse 0 1 2 mumble> ifelse {1 2 3} (1) (1) +mumble> def {positive} (@ {x} {> x 0}) +mumble> def {fibtest} (@ {x} {if (> x 0) {+ x 1} 0 }) +mumble> fibtest 2 +mumble> def {fibonacci} (@ {x} {if (> x 1) { + (fibonacci (- x 2)) ( fibonacci ( - x 1 ) ) } 1} ) +mumble> fibonacci 4 ``` ## To do - [x] Define functions -- [ ] Define if, = and > -- [ ] Build fibonacci function - - Should look something like: def {fib} (@ {x} { ifelse x (+ x (fib (- x 1))) 0 } ) +- [x] Define if, = and > +- [x] Build fibonacci function ## Gotchas -This doesn't currently run on Windows. But it easily could, with [preprocessor statements from the book]. +This doesn't currently run on Windows. But it easily could, with the preprocessor staments from parsing.c [here](https://buildyourownlisp.com/chapter6_parsing). diff --git a/mumble b/mumble index c0d2a86e4fa7dc3e5d5ba96bd94c838d8982bd93..8dd6f76dc7609fadc007f85aad19bd7ce8c598d0 100755 GIT binary patch delta 25962 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 == LISPVAL_NUM && choice->num == 0){ lispval* answer = clone_lispval(alternative); + if(answer->type == LISPVAL_QEXPR){ + answer->type = LISPVAL_SEXPR; + answer = evaluate_lispval(answer, e); + } return answer; }else { lispval* answer = clone_lispval(result); + if(answer->type == LISPVAL_QEXPR){ + // answer = builtin_eval(answer, e); + answer->type = LISPVAL_SEXPR; + answer = evaluate_lispval(answer, e); + } return answer; } }