diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-09-01 07:10:54 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-09-01 07:10:54 -0700 |
commit | f8963593eb0fbac6f101542f9673507462553ce1 (patch) | |
tree | 90db821bc2bf1888ccb3a3d0ee758ed4807fff60 /txr.1 | |
parent | e0eb227ab7ae4f911dfce45c6513db3f2ebe0607 (diff) | |
download | txr-f8963593eb0fbac6f101542f9673507462553ce1.tar.gz txr-f8963593eb0fbac6f101542f9673507462553ce1.tar.bz2 txr-f8963593eb0fbac6f101542f9673507462553ce1.zip |
Fix wrong description of :whole
* txr.1: :whole doesn't bind the entire macro form.
Added Dialect Note to compare with CL.
Diffstat (limited to 'txr.1')
-rw-r--r-- | txr.1 | 34 |
1 files changed, 32 insertions, 2 deletions
@@ -20943,14 +20943,44 @@ The parameter list will bind parameter .code x to the entire -macro form, and bind parameter +macro parameter list, and bind parameter .code y to the macro environment. The .code :whole and .code :env -notation can occur anywhere in a macro parameter list. +notation can occur anywhere in a macro parameter list, other than +to the right of the consing dot. + +.TP* "Dialect Note:" + +In ANSI Common Lisp, the lambda list keyword +.code &whole +binds its corresponding variable to the entire macro form, whereas +\*(TL's +.code :whole +binds its variable only to the arguments of the macro form. + +Note, however, that ANSI CL distinguishes destructuring lambda lists +and macro lambda lists and the +.code &whole +parameter has a different behavior between the two. Under +.codn destructuring-bind , +the +.code &whole +parameter receives just the arguments, just like the behavior +of \*(TL's +.code :whole +parameter. + +\*(TL does not distinguish destructuring and macro lambda lists; +they are the same and behave the same way. Thus +.code :whole +is treated the same way in macros as in +.code tree-bind +and related binding operators: it binds just the arguments +to the parameter. .coNP Operator @ macro-time .synb |