diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2024-04-04 07:33:54 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2024-04-04 07:33:54 -0700 |
commit | d01e894af245c7f8df9b193b482150a1b9725f1c (patch) | |
tree | ef4ba9ec874f641421acd7e20a5a88976d507334 /lib.c | |
parent | f7acc9f8daf14a4171e86fe5fd9dd1c32f6b3948 (diff) | |
download | txr-d01e894af245c7f8df9b193b482150a1b9725f1c.tar.gz txr-d01e894af245c7f8df9b193b482150a1b9725f1c.tar.bz2 txr-d01e894af245c7f8df9b193b482150a1b9725f1c.zip |
New function: lcons-force.
* lib.[ch] (lcons_force): New function.
* eval.c (eval_init): Register lcons-force intrinsic.
* txr.1: Documented.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -4863,6 +4863,18 @@ val lcons_fun(val lcons) return lcons->lc.func; } +val lcons_force(val lcons) +{ + val iter = lcons; + + while (type(iter) == LCONS && iter->lc.func) { + lcons_force(car(iter)); + iter = us_cdr(iter); + } + + return lcons; +} + val list(val first, ...) { va_list vl; |