summaryrefslogtreecommitdiffstats
path: root/lisplib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-08-17 11:04:11 -0700
committerKaz Kylheku <kaz@kylheku.com>2019-08-17 11:04:11 -0700
commitdc5fd66df1953e68571d369d2db2736dbef924e6 (patch)
tree3c6fbb243042bd5e37dfb0d6bfdbf9503603ba17 /lisplib.c
parent62f7bad2bd19b62bd09d02d2f452dc102d7d8097 (diff)
downloadtxr-dc5fd66df1953e68571d369d2db2736dbef924e6.tar.gz
txr-dc5fd66df1953e68571d369d2db2736dbef924e6.tar.bz2
txr-dc5fd66df1953e68571d369d2db2736dbef924e6.zip
list-builder: dequeue capabilities with del/del* operators.
* lisplib.c (build_set_entries): Add buildn for autload, and intern del and del* symbols. * share/txr/stdlib/build.tl (list-builder): New methods del and del*. (sys:list-builder-flets): Generate flet for del*. (sys:build-expander): New function, consisting of expansion logic previously in build function. Macrolet added for del. (build): Call sys:build-expander. (buildn): New macro. * txr.1: Documented.
Diffstat (limited to 'lisplib.c')
-rw-r--r--lisplib.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lisplib.c b/lisplib.c
index a5116043..43c9e5d1 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -426,11 +426,13 @@ static val awk_instantiate(val set_fun)
static val build_set_entries(val dlt, val fun)
{
val name[] = {
- lit("list-builder"), lit("build-list"), lit("build"), nil
+ lit("list-builder"), lit("build-list"), lit("build"), lit("buildn"), nil
};
val name_noload[] = {
lit("head"), lit("tail"), lit("add"), lit("add*"), lit("pend"),
- lit("pend*"), lit("ncon"), lit("ncon*"), lit("get"), nil
+ lit("pend*"), lit("ncon"), lit("ncon*"), lit("get"),
+ lit("del"), lit("del*"),
+ nil
};
set_dlt_entries(dlt, name, fun);