From d29aed64b8c31adf1208e0aebe32d27154f64b89 Mon Sep 17 00:00:00 2001 From: Stephen Chang Date: Tue, 16 Sep 2014 18:56:36 -0400 Subject: [PATCH] racket extended: name ldots in pattern --- racket-extended-for-implementing-typed-langs.rkt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/racket-extended-for-implementing-typed-langs.rkt b/racket-extended-for-implementing-typed-langs.rkt index 9b6c32a..c31614f 100644 --- a/racket-extended-for-implementing-typed-langs.rkt +++ b/racket-extended-for-implementing-typed-langs.rkt @@ -175,12 +175,12 @@ #`(#:when (Γ (type-env-extend #'([f τ] ... #,@(template ((?? ldots)))))))) (pattern (~seq (let τ := (typeof e)) (~literal ...)) #:attr pattern-directive #'(#:with (τ (... ...)) (stx-map typeof #'(e (... ...))))) - (pattern (~seq (e0 : τ0) (~literal ...)) + (pattern (~seq (e0 : τ0) (~and ldots (~literal ...))) #:when (concrete-τ? #'τ0) - #:attr pattern-directive #'(#:when (stx-andmap (λ (e) (assert-type e #'τ0)) #'(e0 (... ...))))) + #:attr pattern-directive #'(#:when (stx-andmap (λ (e) (assert-type e #'τ0)) #'(e0 ldots)))) ;; not concrete-τ - (pattern (~seq (e0 : τ0) (~literal ...)) - #:attr pattern-directive #'(#:when (stx-andmap assert-type #'(e0 (... ...)) #'(τ0 (... ...))))))) + (pattern (~seq (e0 : τ0) (~and ldots (~literal ...))) + #:attr pattern-directive #'(#:when (stx-andmap assert-type #'(e0 ldots) #'(τ0 ldots)))))) ;; define-typed-syntax