diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-02-16 16:15:48 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-02-16 16:15:48 -0800 |
commit | 5cb820d7f9be3df23e19fd67a2f5ff6309188eea (patch) | |
tree | 8e6eb7ed237a97b259142834a88ca59d1bcc6bae /ChangeLog | |
parent | 65ea825e92af183f5aff9aeb7c6a7880005a7558 (diff) | |
download | txr-5cb820d7f9be3df23e19fd67a2f5ff6309188eea.tar.gz txr-5cb820d7f9be3df23e19fd67a2f5ff6309188eea.tar.bz2 txr-5cb820d7f9be3df23e19fd67a2f5ff6309188eea.zip |
New destructuring operators.
* eval.c (tree_case_s, tree_bind_s): New symbol variables.
(bind_macro_params): Bugfix: inappropriate exception thrown when atom
matched against parameter list. Bugfix: nil being returned when
atom matches empty parameter list. Added support for a new convention:
if loose_p is the colon keyword, then exceptions are not thrown
for destructuring mismatches; nil is returned instad.
(op_tree_case, expand_tree_cases, expand_tree_case, op_tree_bind):
New static functions.
(expand): Handle tree_case_s and tree_bind_s.
(eval_init): Intern tree-case and tree-bind symbols.
Register the corresponding operator functions op_tree_case and
op_tree_bind under these symbols in op_table.
* txr.1: Documented tree-case and tree-bind operators.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -1,5 +1,24 @@ 2014-02-16 Kaz Kylheku <kaz@kylheku.com> + New destructuring operators. + + * eval.c (tree_case_s, tree_bind_s): New symbol variables. + (bind_macro_params): Bugfix: inappropriate exception thrown when atom + matched against parameter list. Bugfix: nil being returned when + atom matches empty parameter list. Added support for a new convention: + if loose_p is the colon keyword, then exceptions are not thrown + for destructuring mismatches; nil is returned instad. + (op_tree_case, expand_tree_cases, expand_tree_case, op_tree_bind): + New static functions. + (expand): Handle tree_case_s and tree_bind_s. + (eval_init): Intern tree-case and tree-bind symbols. + Register the corresponding operator functions op_tree_case and + op_tree_bind under these symbols in op_table. + + * txr.1: Documented tree-case and tree-bind operators. + +2014-02-16 Kaz Kylheku <kaz@kylheku.com> + * eval.c (bind_macro_params): Bugfix: enforce mismatch on superfluous material. |