diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-09-14 06:48:35 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-09-14 06:48:35 -0700 |
commit | 61617da8db174532055801a7ccdc244b8fb80f2e (patch) | |
tree | d2c861b1ce6f5dc35f241451a89068f4fc6cc34d /share | |
parent | 936463735640b904a97bad5588a12f9d70e88075 (diff) | |
download | txr-61617da8db174532055801a7ccdc244b8fb80f2e.tar.gz txr-61617da8db174532055801a7ccdc244b8fb80f2e.tar.bz2 txr-61617da8db174532055801a7ccdc244b8fb80f2e.zip |
New place-mutating macro: upd.
* lisplib.c (place_set_entries): Add upd to the auto-load
list for place.tl.
* share/txr/stdlib/place.tl (upd): New macro.
* txr.1: Documented.
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/place.tl | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl index d580d91a..61654509 100644 --- a/share/txr/stdlib/place.tl +++ b/share/txr/stdlib/place.tl @@ -371,6 +371,11 @@ places)) ,orig))) +(defmacro upd (place . opip-args) + (with-gensyms (pl) + ^(placelet ((,pl ,place)) + (set ,pl (call (opip ,*opip-args) ,pl))))) + (defmacro defplace (place-destructuring-args body-sym (getter-sym setter-sym update-body) : ((ssetter-sym clobber-body)) |