# Version 3.0 of Scheme+ for Racket

**URL:** <https://racket.discourse.group/t/version-3-0-of-scheme-for-racket/1218>\
**Category:** Show & Tell\
**Created:** [August 9, 2022, 9:42am UTC](https://racket.discourse.group/t/version-3-0-of-scheme-for-racket/1218 "2022-08-09T09:42:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 9, 2022, 9:42am UTC](https://racket.discourse.group/t/version-3-0-of-scheme-for-racket/1218/1 "2022-08-09T09:42:38Z")

</div>

Hi,

i released a new version of Scheme+ , Version 3.0 add strings support and a few other enhancement.

[https://damien-mattei.github.io/Scheme-PLUS-for-Racket/Scheme+io.html](https://damien-mattei.github.io/Scheme-PLUS-for-Racket/Scheme+io.html)

[https://pkgs.racket-lang.org/package/Scheme-PLUS-for-Racket](https://pkgs.racket-lang.org/package/Scheme-PLUS-for-Racket)

I give too some examples of Scheme+ in real conditions:

[https://github.com/damien-mattei/library-FunctProg/blob/master/racket/logiki%2B.rkt#L1941](https://github.com/damien-mattei/library-FunctProg/blob/master/racket/logiki%2B.rkt#L1941)

A Petrick's method implementation:  
[https://github.com/damien-mattei/library-FunctProg/blob/master/racket/logiki%2B.rkt#L2201](https://github.com/damien-mattei/library-FunctProg/blob/master/racket/logiki%2B.rkt#L2201)

A Quine - Mc Cluskey's implementation:  
[https://github.com/damien-mattei/library-FunctProg/blob/master/racket/logiki%2B.rkt#L2139](https://github.com/damien-mattei/library-FunctProg/blob/master/racket/logiki%2B.rkt#L2139)

Bienvenue dans DrRacket, version 7.7 [3m].  
Langage: reader "racket/SRFI-105.rkt", avec débogage; limite mémoire : 128 MB.  
'()

(infix-symb-min-dnf '{A ⊕ B ⊕ Ci})  
'((A ∧ B ∧ Ci) ∨ (A ∧ ¬B ∧ ¬Ci) ∨ (¬A ∧ B ∧ ¬Ci) ∨ (¬A ∧ ¬B ∧ Ci))

racket -f start-logiki-command-line.rkt -i  
Welcome to Racket v7.7.  
'()

(infix-symb-bool-min-dnf '{{(not a) and (not b) and (not c) and (not d)} or {(not a) and (not b) and (not c) and d} or {(not a) and (not b) and c and (not d)} or {(not a) and b and (not c) and d} or {(not a) and b and c and (not d)} or {(not a) and b and c and d} or {a and (not b) and (not c) and (not d)} or {a and (not b) and (not c) and d} or {a and (not b) and c and (not d)} or {c and (not d)}} )

'((a̅ · b · d) ➕ (b̅ · c̅) ➕ (c · d̅)) ;; display well only in terminal not in REPL of graphic interface (bar notation not supported in the GUI)

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.

The only little known bug in the Scheme+ infix parsing is the non support of #; comment style in code. (only ; are supported) it seems silly 🙂 but i do not know how to fix it.

Scheme+ is 100% Scheme compatible and easy to port on Scheme system having SRFI-105 "Curly infix" but requires more hack without it.

Regards,

Damien

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [August 9, 2022, 1:32pm UTC](https://racket.discourse.group/t/version-3-0-of-scheme-for-racket/1218/2 "2022-08-09T13:32:28Z")

</div>

Hi Damien,  
Thank you for sharing this.

Can I ask why is it built Racket 7.7 for Linux ? That is quite an old version and 8.6 will be released soon.  
Best regards  
Stephen

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 9, 2022, 2:38pm UTC](https://racket.discourse.group/t/version-3-0-of-scheme-for-racket/1218/3 "2022-08-09T14:38:13Z")

</div>

Hello Stephan,

oh it is just that my desktop computer is using Racket 7.7 and i still do not have updated it,  
on my MacBook Pro laptop (can not verify now) the version is 8.2 which is more recent as commented in file:  
[https://github.com/damien-mattei/library-FunctProg/blob/master/start-logiki-command-line.rkt#L2](https://github.com/damien-mattei/library-FunctProg/blob/master/start-logiki-command-line.rkt#L2)

and i checked too the package build on [pkg-build.racket-lang.org](http://pkg-build.racket-lang.org) and it use the 8.5 version almost the last one (8.6):  
[https://pkg-build.racket-lang.org/server/built/install/Scheme-PLUS-for-Racket.txt](https://pkg-build.racket-lang.org/server/built/install/Scheme-PLUS-for-Racket.txt)

Using old and new version is a good compatibility test 🙂  
but i will remember to update my laptop computer with 8.6.

Best Regards,  
Damien

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 10, 2022, 9:05am UTC](https://racket.discourse.group/t/version-3-0-of-scheme-for-racket/1218/4 "2022-08-10T09:05:34Z")

</div>

and i forget to write that Scheme+ version 3.0 is also available for Guile Scheme:  
[https://damien-mattei.github.io/Scheme-PLUS-for-Guile/Scheme+io.html](https://damien-mattei.github.io/Scheme-PLUS-for-Guile/Scheme+io.html)

and soon for Chicken and Sagittarius Scheme because it is easy to port it when SRFI-105 is already implemented for the Scheme, ports for other Scheme implementation will be more hard.

Damien
