note that this simplification works: (cons #'list (optimizer-parse-square-brackets-arguments-lister-syntax #`(#,@#'args-brackets)))))
but all attempt to simplify this part: #`(#,@#'args-brackets) gives errors On Thu, May 16, 2024 at 1:00 AM Damien Mattei <damien.mat...@gmail.com> wrote: > do you think this can be written simpler? > > #`(list #,@(optimizer-parse-square-brackets-arguments-lister-syntax > #`(#,@#'args-brackets))) > > i'm quite afraid the look the 'syntax' get.... > > it is part of this macro: > > (define-syntax $bracket-apply$ > > (lambda (stx) > > (syntax-case stx () > > > ;; a version that pre-compil the infix expression, should be faster > ;; scheme@(guile-user)> {#(1 2 3 4 5 6 7 8 9)[6 - 4 : 5 + 2]} > ;; optimizer-parse-square-brackets-arguments-lister-syntax : > args-brackets=(#<syntax:unknown file:2:22 6> #<syntax:unknown file:2:24 -> > #<syntax:unknown file:2:26 4> #<syntax:unknown file:2:28 :> #<syntax:unknown > file:2:30 5> #<syntax:unknown file:2:32 +> #<syntax:unknown file:2:34 2>) > ;; $bracket-apply$ : > #'parsed-args=(#<syntax:apply-square-brackets.scm:106:37 list> > (#<syntax:unknown file:2:24 -> #<syntax:unknown file:2:22 6> #<syntax:unknown > file:2:26 4>) #<syntax:unknown file:2:28 :> (#<syntax:unknown file:2:32 +> > #<syntax:unknown file:2:30 5> #<syntax:unknown file:2:34 2>)) > ;; $1 = #(3 4 5 6 7) > > ;; scheme@(guile-user)> (define i 5) > ;; scheme@(guile-user)> {#(1 2 3 4 5 6 7 8 9)[6 - 4 : i + 2]} > ;; optimizer-parse-square-brackets-arguments-lister-syntax : > args-brackets=(#<syntax:unknown file:4:22 6> #<syntax:unknown file:4:24 -> > #<syntax:unknown file:4:26 4> #<syntax:unknown file:4:28 :> #<syntax:unknown > file:4:30 i> #<syntax:unknown file:4:32 +> #<syntax:unknown file:4:34 2>) > ;; $bracket-apply$ : > #'parsed-args=(#<syntax:apply-square-brackets.scm:106:37 list> > (#<syntax:unknown file:4:24 -> #<syntax:unknown file:4:22 6> #<syntax:unknown > file:4:26 4>) #<syntax:unknown file:4:28 :> (#<syntax:unknown file:4:32 +> > #<syntax:unknown file:4:30 i> #<syntax:unknown file:4:34 2>)) > ;; $2 = #(3 4 5 6 7) > (($bracket-apply$ container . args-brackets) > > > (with-syntax ((parsed-args #`(list > #,@(optimizer-parse-square-brackets-arguments-lister-syntax > #`(#,@#'args-brackets))))) > > (display "$bracket-apply$ : #'parsed-args=") (display > #'parsed-args) (newline) > > #'($bracket-apply$next4list-args container parsed-args)))))) > >