diff options
| author | Joel Martin <github@martintribe.org> | 2014-04-23 21:59:50 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-04-23 21:59:50 -0500 |
| commit | 6301e0b6374cecc5599665be14d6ddc6a31ce1e8 (patch) | |
| tree | dbf1dc2ff6c682fd87c72a7907e7f6e59c8d4c03 /bash/step9_interop.sh | |
| parent | 89bd4de1e2704c1bc562788b2c5e4fc08b71a538 (diff) | |
| download | mal-6301e0b6374cecc5599665be14d6ddc6a31ce1e8.tar.gz mal-6301e0b6374cecc5599665be14d6ddc6a31ce1e8.zip | |
All: TCO let* and quasiquote.
Diffstat (limited to 'bash/step9_interop.sh')
| -rwxr-xr-x | bash/step9_interop.sh | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/bash/step9_interop.sh b/bash/step9_interop.sh index 04d3413..5e4828f 100755 --- a/bash/step9_interop.sh +++ b/bash/step9_interop.sh @@ -136,15 +136,18 @@ EVAL () { ENV_SET "${let_env}" "${ANON["${let_pairs[${idx}]}"]}" "${r}" idx=$(( idx + 2)) done - EVAL "${a2}" "${let_env}" - return ;; + ast="${a2}" + env="${let_env}" + # Continue loop + ;; quote) r="${a1}" return ;; quasiquote) QUASIQUOTE "${a1}" - EVAL "${r}" "${env}" - return ;; + ast="${r}" + # Continue loop + ;; defmacro!) local k="${ANON["${a1}"]}" EVAL "${a2}" "${env}" |
