# Postfix for Scheme+

**URL:** https://racket.discourse.group/t/postfix-for-scheme/4134
**Category:** General
**Tags:** infix, postfix, prefix
**Created:** [March 7, 2026, 11:42am UTC](https://racket.discourse.group/t/postfix-for-scheme/4134 "2026-03-07T11:42:29Z")
**Posts on this page:** 2
**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: [March 7, 2026, 11:42am UTC](https://racket.discourse.group/t/postfix-for-scheme/4134/1 "2026-03-07T11:42:29Z")

</div>

Hi,

i added some **postfix** notation support for Scheme+.  
There is not a lot of languages and systems supporting postfix syntax: RPN (Reverse Polish Notation) Hewlett Packard calculators ([HP-65](https://www.hpmuseum.org/hp65.htm), [HP-15C](https://www.hpmuseum.org/hp15.htm),HP-41C,HP-34C,....)  
Also [Forth language](https://en.wikipedia.org/wiki/Forth_(programming_language)) and more recently [Rhombus](https://dl.acm.org/doi/10.1145/3622818).

Here are some examples:

```scheme
#lang reader SRFI-105
(require Scheme+)

; factorial
{12 !} ; postfix
479001600

(! 5) ; normal prefix
120

{1 2 3 4 +}
10

{1 (4 5 *) 3 +}
24

; A mix of postfix,infix and prefix:
{2 (3 (9 - 5) *) (- 8 3) +}
19

(declare-postfix-operator *) ; when there is some ambiguity
{x := 7}
{1 (x 5 *) 3 +}
39

(define (C n k)
    {(n !) / ((k !) · ((n - k)!))})

(require flomat)
(define ᵀ transpose) ; transpose of a Matrix
(declare-postfix-operator ᵀ)
{A := (matrix #(#(1 2 3) #(4 5 6)))}

{A ᵀ}
(flomat: ((1.0 4.0) (2.0 5.0) (3.0 6.0)))

{(A ᵀ)ᵀ}
(flomat: ((1.0 2.0 3.0) (4.0 5.0 6.0)))

```

> **[6.9 Postfix operators🔗ℹ - Scheme+ for Racket](https://docs.racket-lang.org/Scheme-PLUS-for-Racket/index.html#%28part._postfix%29)**
>
> The { } parenthesis accept also postfix notation. By default all existing procedure can be used postfixed in { }.

Bonne journée.

---

<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: [March 14, 2026, 3:51pm UTC](https://racket.discourse.group/t/postfix-for-scheme/4134/2 "2026-03-14T15:51:01Z")

</div>

Hi,

just a few words about a technic called "Bootstrapping" that i now use internally for developping Scheme+ next features.

"Bootstrapping" allow a language or compiler to be written in the language it is currently defining. Whooaa this looks strange: how can the language be defined in the language if you are currently writing/upgrading with new feature.

You just need a previous version of the language and with a restriction, do not use in your code features you are currently coding of course.

I learnt Bootstrapping when i was a student in compilation classes but i did not think at this time i would never use it!

You can find more information in the wikipedia page:

> **[Bootstrapping (compilers)](https://en.wikipedia.org/wiki/Bootstrapping_(compilers))**
>
> In computer science, bootstrapping is the technique for producing a self-compiling compiler – that is, a compiler (or assembler) written in the source programming language that it intends to compile. An initial core version of the compiler (the bootstrap compiler) is generated in a different language (which could be assembly language); successive expanded versions of the compiler are developed using this minimal subset of the language. The problem of compiling a self-compiling compiler has been c...

for the fun , i discovered on facebook today some video of **a good army comrade** ,now _ **blacksmith** _, about social networks , i can not resist posting them here 😃 , but this is french language

> **[Facebook](https://www.facebook.com/reel/2039993216841625)**

🤣

> **[2.3K views · 54 reactions | Allez la suite vidéo du copain qu est ce qu on se...](https://www.facebook.com/reel/1293468559068145?rdid=yCFHXKasN8vwRb3r&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2Fv%2F1GXvubkXUd%2F)**
>
> Allez la suite vidéo du copain qu est ce qu on se marre 😝🤣🤣🤣🤣🤣

🤣

> **[5.2K views · 90 reactions | Maniglier Julien Coutelier on Reels](https://www.facebook.com/reel/1099060732180758?rdid=LkZ9X6GFtKnupehW&share_url=https%3A%2F%2Fwww.facebook.com%2Fshare%2Fv%2F18QQvXtrTH%2F)**

Bonne journée

Damien
