diff options
Diffstat (limited to 'src/primitives.c')
| -rw-r--r-- | src/primitives.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/primitives.c b/src/primitives.c index 5f70f09..8e56bf9 100644 --- a/src/primitives.c +++ b/src/primitives.c @@ -198,6 +198,11 @@ SExpRef primitive_let(Interp *interp, SExpRef args, bool istail) { } body = CDR(args); + if (istail) { + SExpRef closure = new_lambda(interp, NIL, body, env); + ret = new_tailcall(interp, closure, NIL); + goto end; + } iter = body; while (!NILP(iter)) { exp = CAR(iter); |
