Scheme+ for Racket


i have port my Scheme+ for Racket language:
Scheme+ is an extension of the syntax of the Scheme language. Scheme+ makes it easy the assignment of Scheme objects in infix (works also in prefix) notation with a few new operators ← (or <-), [ ],⥆ (or <+) . This package also include the implementation of the Curly Infix SRFI 105 with a REPL (Read Eval Print Loop) for DrRacket.

Scheme+ is on Github and in the Racket packages repository:

Scheme+ for Racket project at

Scheme+ for Racket at Github

Scheme+ doc for Racket at Github

Scheme+ package for DrRacket

Scheme+ for Racket light HTML doc at

Enjoy using it!



someone in the mailing list wrote me that 'sweet expr' is doing the same as curly infix SRFI 105:

It implements curly infix along with other syntax enhancements.

Your example works with it (#lang sweet-exp racket) as is.

but i replied:
yes it works for a simple example but not on complex ones:

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}


i suppose sweet exp transforming T[3] in T(3) and the SRFI 105 letting the user redefine $bracket-apply$ which is what i do in Scheme+

The parsing in sweet expr is before my Schme+ macro operate and i can not find a way to change that.

i do not know if it is possible to solve that without going into the source code of 'sweet expr'?

1 Like