mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
Don't treat underscore as a pattern variable. Fixes issue #382.
This commit is contained in:
parent
71f4db7d17
commit
9fa8d8c1f0
2 changed files with 10 additions and 2 deletions
|
@ -706,7 +706,8 @@
|
|||
(_reverse (rename 'reverse))
|
||||
(_vector->list (rename 'vector->list))
|
||||
(_list->vector (rename 'list->vector))
|
||||
(_cons3 (rename 'cons-source)))
|
||||
(_cons3 (rename 'cons-source))
|
||||
(_underscore (rename '_)))
|
||||
(define ellipsis (if ellipsis-specified? (cadr expr) (rename '...)))
|
||||
(define lits (if ellipsis-specified? (car (cddr expr)) (cadr expr)))
|
||||
(define forms (if ellipsis-specified? (cdr (cddr expr)) (cddr expr)))
|
||||
|
@ -729,7 +730,9 @@
|
|||
(list _and
|
||||
(list _compare v (list _rename (list _quote p)))
|
||||
(k vars))
|
||||
(list _let (list (list p v)) (k (cons (cons p dim) vars)))))
|
||||
(if (compare p _underscore)
|
||||
(k vars)
|
||||
(list _let (list (list p v)) (k (cons (cons p dim) vars))))))
|
||||
((ellipsis? p)
|
||||
(cond
|
||||
((not (null? (cdr (cdr p))))
|
||||
|
|
|
@ -460,6 +460,11 @@
|
|||
(part-2x (10 (+ 21 22) (31 32) (41 42) (51 52) (+ 61 2) 77 . "tail")))
|
||||
|
||||
;; underscore
|
||||
(define-syntax underscore
|
||||
(syntax-rules ()
|
||||
((foo _) '_)))
|
||||
(test '_ (underscore foo))
|
||||
|
||||
(define-syntax count-to-2
|
||||
(syntax-rules ()
|
||||
((_) 0)
|
||||
|
|
Loading…
Add table
Reference in a new issue