diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-09-11 18:42:00 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-09-11 18:42:00 -0700 |
commit | 7b28c795b04bef5328b64fa50498d13d8a642e3b (patch) | |
tree | 3bfb45cc0220ef144a858fc24ce7814b251887fc /txr.1 | |
parent | 41491701550523a649c256a10a4748030423f427 (diff) | |
download | txr-7b28c795b04bef5328b64fa50498d13d8a642e3b.tar.gz txr-7b28c795b04bef5328b64fa50498d13d8a642e3b.tar.bz2 txr-7b28c795b04bef5328b64fa50498d13d8a642e3b.zip |
New alet macro.
* lisplib.c (place_set_entries): Add alet symbol to autoload
list for place.tl.
* share/txr/stdlib/place.tl (alet): New macro.
* txr.1: Documented alet.
Diffstat (limited to 'txr.1')
-rw-r--r-- | txr.1 | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -27812,6 +27812,31 @@ to symbol macros. In addition, unlike also reduces to symbol macros those bindings which are initialized by symbol expressions (values of variables). +.coNP Macro @ alet +.synb +.mets (alet >> ({( sym << init-form )}*) << body-form *) +.syne +.desc +The macro +.code alet +("atomic" or "all") is a stronger form of the +.code slet +macro. The transformation of any of the bindings to symbol macros takes place +under the same conditions as under +.codn slet . +However, +.code alet +imposes the restriction that all the bindings must be transformed +to symbol macros, or not at all. + +The +.code alet +macro can be used to avoid introducing temporary variables in situations when +it is suspected that the initializing forms for the variables have side +effects through which they affect each others' evaluations. The suspicion is +lifted if the all initializing forms (after expansion) are constants, or +accesses to symbols. + .coNP Macro @ define-accessor .synb .mets (define-accessor < get-function << set-function ) |