takikawa / sweet-racket

A port of sweet expressions to Racket

Home Page:http://pkg-build.racket-lang.org/doc/sweet/index.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

$bracket-apply$ of SRFI 105 not implemented

damien-mattei opened this issue · comments

hello,
i can not use $bracket-apply$ and find no occurence of it in the repository.I suppose it is not implemented.
In theory it should be as curly infix is included in neotreic expression incuded in sweet expressions.
Bienvenue dans DrRacket, version 7.7 [3m].
Langage: sweet-exp racket, avec débogage; limite mémoire : 128 MB.

    (define T (make-vector 5))
    '{T[3] <- 7}
    '(<- (T 3) 7)

{T[3] <- 7}
. set!: not an identifier in: (T 3)

normally this should expand like:

'{T[3] <- 7}
'(<- ($bracket-apply$ T 3) 7)

{T[3] <- 7}
7

{T[3]}
7

i suppose sweet exp transforming T[3] in T(3) and is ignoring the $bracket-apply$

Regards,
Damien

This package was originally ported from the "readable" project code around 2011, so I think it predates SRFI-105.

I'm not actively maintaining the package, but would accept PRs to update it to more recent versions of the syntax.

It looks like there is an older version of this bracket syntax (with bracketaccess) defined in https://github.com/takikawa/sweet-racket/blob/master/sweet-exp-lib/sweet-exp/modern.rkt but it's disabled in this package. You could try enabling it in a local copy of the package.

sorry for the late answer but i did not get any notification for your answer...
yes i will try to activate and test "bracketaccess" locally...

i read the code ,there exist a bracketaccess that should be $bracket-apply$ and there is a line :
; Configuration:
(define modern-backwards-compatible #f) ; If true, "(" triggers old reader.
(define modern-bracketaccess #f) ; If true, "f[...]" => [bracketaccess f ...]
; if not, "f[...]" => [f ...].

but there is no underlying implementation in the code using it !