Hello,
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 github.io
Scheme+ for Racket at Github
Scheme+ doc for Racket at Github
Scheme+ package for DrRacket
Scheme+ for Racket light HTML doc at github.io
Enjoy using it!
Damien
7 Likes
someone in the mailing list wrote me that 'sweet expr' is doing the same as curly infix SRFI 105:
sweet-exp
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}
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