summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-02-24 00:25:23 -0800
committerKaz Kylheku <kaz@kylheku.com>2022-02-24 00:25:23 -0800
commit34530bc12e2e455b569d183937af9f41db9adbed (patch)
tree06f401350b81df769ffcdee39d30dae205c1a676 /stdlib
parent5a8c20fee69d0b68ee60d33a22f0fa46f724e1e2 (diff)
downloadtxr-34530bc12e2e455b569d183937af9f41db9adbed.tar.gz
txr-34530bc12e2e455b569d183937af9f41db9adbed.tar.bz2
txr-34530bc12e2e455b569d183937af9f41db9adbed.zip
opip: pass through forms in the op family.
* stdlib/op.tl (sys:opip-expand): Add op, do, lop, ldo, ap, ip, ado, ido, ret and aret to the operators whose forms are passed through untransformed. This is important because it lets us override the implicit (op ...) and (do ...) chosen by the expander. When a pipeline element produces a list, for instance, we want to be able to use (ap ...) in the next element to spread the list into arguments. * tests/012/op.tl: Add bellied numbers test case. * txr.1: Documented.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/op.tl2
1 files changed, 1 insertions, 1 deletions
diff --git a/stdlib/op.tl b/stdlib/op.tl
index 2754ca0d..1f242745 100644
--- a/stdlib/op.tl
+++ b/stdlib/op.tl
@@ -221,7 +221,7 @@
(if (atom c)
c
(let ((sym (car c)))
- (if (member sym '(dwim uref qref))
+ (if (member sym '(dwim uref qref op do lop ldo ap ip ado ido ret aret))
c
(let ((opdo (if (or (special-operator-p (car c))
(macro-form-p c e)) 'do 'op)))