I think you can just add it to for.rktl: (test '(1 2 3) 'put-a-descriptive-name-here (let () (define (in-X #:x seq) seq) (for/list ([x (in-X #:x '(1 2 3))]) x) ;; => '(1 2 3) (define-sequence-syntax in-X* (lambda () #'in-X) (lambda (stx) #f)) (for/list ([x (in-X* #:x '(1 2 3))]) x)))
On Wed, Feb 6, 2013 at 7:42 PM, Ryan Culpepper <ry...@ccs.neu.edu> wrote: > I sent a test case to Matthew, since I wasn't sure how best to include it: > it is a syntax error in the old version of the code. Here it is: > > (define (in-X #:x seq) seq) > (for/list ([x (in-X #:x '(1 2 3))]) x) > ;; => '(1 2 3) > (define-sequence-syntax in-X* (lambda () #'in-X) (lambda (stx) #f)) > (for/list ([x (in-X* #:x '(1 2 3))]) x) > ;; => '(1 2 3), previously syntax error > > Ryan > > > > On 02/06/2013 08:08 PM, Robby Findler wrote: > >> Test case? >> >> Robby >> >> >> On Wed, Feb 6, 2013 at 5:08 PM, <ry...@racket-lang.org >> <mailto:ry...@racket-lang.org>**> wrote: >> >> ryanc has updated `master' from 117c81e2a6 to a85a71984d. >> >> http://git.racket-lang.org/**plt/117c81e2a6..a85a71984d<http://git.racket-lang.org/plt/117c81e2a6..a85a71984d> >> >> =====[ One Commit ]=============================** >> ======================== >> Directory summary: >> 100.0% collects/racket/private/ >> >> ~~~~~~~~~~ >> >> a85a719 Ryan Culpepper <ry...@racket-lang.org >> <mailto:ry...@racket-lang.org>**> 2013-02-06 17:55 >> >> : >> | preserve lexical context, src, etc for sequence syntax expansion >> | >> | The previous version of the code replaced the implicit #%app with >> | the kernel #%app (ie, #%plain-app), causing sequence functions >> | that take keyword arguments to fail. >> : >> M collects/racket/private/for.**rkt | 3 ++- >> >> =====[ Overall Diff ]=============================** >> ====================== >> >> collects/racket/private/for.**rkt >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**~ >> --- OLD/collects/racket/private/**for.rkt >> +++ NEW/collects/racket/private/**for.rkt >> @@ -118,7 +118,8 @@ >> (if (identifier? stx) >> (proc1) >> (datum->syntax stx >> - #`(#,(proc1) . #,(cdr (syntax-e >> stx))) >> + ;; Use cons, not #`(#,op #,@args), >> to avoid replacing implicit #%app binding >> + (cons (proc1) (cdr (syntax-e stx))) >> stx >> stx))) >> proc1) >> >> >> >> >> _________________________ >> Racket Developers list: >> http://lists.racket-lang.org/**dev <http://lists.racket-lang.org/dev> >> >> >
_________________________ Racket Developers list: http://lists.racket-lang.org/dev