On Sat, Jan 20, 2024 at 9:07 PM Dr. Arne Babenhauserheide <arne_bab@web.de> wrote:

Damien Mattei <damien.mattei@gmail.com> writes:


> by keeping the same
> number of parenthesis, but they are just differents : ( ), { }, [ ]
> and it allow the use of infix expressions.

Is your implementation of {} compatible with SRFI-105? (curly infix)

yes it is based on SRFI-105


Can it be used to provide proper operator precedence? (that’s currently
not offered by SRFI-105 and would be quite an improvement)


yes there is operator precedence , an expression like :
{{x - v * t} / (sqrt {1 - v ** 2 / c ** 2})}
is converted in this one:
(/ (- x (* v t)) (sqrt (- 1 (/ (** v 2) (** c 2)))))

the operator precedence are predefined in a list ordered by priority in the source code:

(define infix-operators-lst

  '(
    (expt **)
    (* / %)
    (+ -)

    (<< >>)

    (& ∣)

    (< > = ≠ <= >= <>)

    (and)

    (or)

    (<- -> ← → <v v> ⇜ ⇝)
    (<+ +> ⥆ ⥅)
    )

  )

Best regards,
Damien