summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2024-04-04 07:33:54 -0700
committerKaz Kylheku <kaz@kylheku.com>2024-04-04 07:33:54 -0700
commitd01e894af245c7f8df9b193b482150a1b9725f1c (patch)
treeef4ba9ec874f641421acd7e20a5a88976d507334 /lib.c
parentf7acc9f8daf14a4171e86fe5fd9dd1c32f6b3948 (diff)
downloadtxr-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.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 12f024cc..4ee9cd59 100644
--- a/lib.c
+++ b/lib.c
@@ -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;