summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-01-15 01:50:56 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-01-15 01:50:56 -0800
commitb720b5468daf5498ab470293563e65fdeedbb959 (patch)
tree19607260cfcac47cd83ba73f6a837a8622a2081d /share
parent7290acecaf17b38154a065c732043e282c33c4dd (diff)
downloadtxr-b720b5468daf5498ab470293563e65fdeedbb959.tar.gz
txr-b720b5468daf5498ab470293563e65fdeedbb959.tar.bz2
txr-b720b5468daf5498ab470293563e65fdeedbb959.zip
matcher: allow omitted variabel in predicates
For instance @(oddp) instead of @(oddp x) to require an element to satisfy oddp without capturing it to a variable. * share/txr/stdlib/match.tl (compile-predicate-match): Make the symbolic argument optional, defaulting to nil. A nil symbol is already treated as pseudo-variable which consumes an item without binding to a variable.
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/match.tl2
1 files changed, 1 insertions, 1 deletions
diff --git a/share/txr/stdlib/match.tl b/share/txr/stdlib/match.tl
index 526e3b3d..18ab6577 100644
--- a/share/txr/stdlib/match.tl
+++ b/share/txr/stdlib/match.tl
@@ -116,7 +116,7 @@
test-expr ^(equal ,obj-var ',atom)))))
(defun compile-predicate-match (pred-expr obj-var)
- (tree-bind (fun sym) pred-expr
+ (tree-bind (fun : sym) pred-expr
(or (null sym) (bindable sym)
(compile-error *match-form* "~s is not a symbol" sym))
(let ((var-match (compile-var-match sym obj-var)))