summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-01-25 12:36:28 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-01-25 12:36:28 -0800
commite593dc1264979d99f1bad53d0496ae6f90c5e2cc (patch)
tree7d54f588fc00c35479af1f8a6459b1e0bd43c103 /share
parentc485146a246ab4b69e6ec510ec47713897f4d463 (diff)
downloadtxr-e593dc1264979d99f1bad53d0496ae6f90c5e2cc.tar.gz
txr-e593dc1264979d99f1bad53d0496ae6f90c5e2cc.tar.bz2
txr-e593dc1264979d99f1bad53d0496ae6f90c5e2cc.zip
Local macrolets in build become functions.
* share/txr/stdlib/build.tl (sys:list-builder-macrolets): Function renamed to sys:list-builder-flets. Builds local functions instead of macrolets. (build): Follow rename of sys:list-builder-macrolets. * txr.1: Documentation updated and example added of use of add as a higher order function.
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/build.tl10
1 files changed, 5 insertions, 5 deletions
diff --git a/share/txr/stdlib/build.tl b/share/txr/stdlib/build.tl
index c5fc5866..1ee166af 100644
--- a/share/txr/stdlib/build.tl
+++ b/share/txr/stdlib/build.tl
@@ -67,13 +67,13 @@
(:method get (self)
(cdr self.head)))
-(defun sys:list-builder-macrolets (lb-form)
+(defun sys:list-builder-flets (lb-form)
(nconc
(collect-each ((op '(add add* pend pend* ncon ncon*)))
- ^(,op (. forms)
- ^(qref ,',lb-form (,',op ,*forms))))
+ ^(,op (. args)
+ (qref ,lb-form (,op . args))))
^((get ()
- ^(qref ,',lb-form (get))))))
+ (qref ,lb-form (get))))))
(defun build-list (: init)
(new list-builder head init))
@@ -81,6 +81,6 @@
(defmacro build (. forms)
(with-gensyms (name)
^(let ((,name (new list-builder)))
- (macrolet ,(sys:list-builder-macrolets name)
+ (flet ,(sys:list-builder-flets name)
,*forms
(qref ,name (get))))))