LispPad Go is a similar tool focusing on scheme R7RS. It’s been great for writing little scripts. Been using it for a few years now. Racket would be compelling though because of the number of libraries.
It does actually have a lot of R7RS support (like #!fold-case) however it doesn't seem to work with polar complex numbers (e.g; 2@1.5) or complex numbers with infnan (e.g; 3+inf.0i or +inf.0+3i).
Author from LispPad here... Polar complex number literals are actually not part of R7RS and (make-polar ...) would need to be used for writing portable code. Complex number literals with infinite parts are supported, but I noticed that LispPad might behave differently as it does apply mathematical equivalences that are being ignored in other Scheme implementations. Let me know if you see a behavior that violates the R7RS spec. Thanks!
Thanks for working on LispPad, I'm really enjoying using it.
> Polar complex number literals are actually not part of R7RS
I actually thought they were part of the spec. Specifically, I am referring to the last paragraph from section 6.2.5 of R7RS small <https://small.r7rs.org/attachment/r7rs.pdf>
This is the excerpt from the pdf:
6.2.5. Syntax of numerical constants
...
There are two notations provided for non-real complex
numbers: the rectangular notation a+bi, where a is the
real part and b is the imaginary part; and the polar no-
tation r@θ, where r is the magnitude and θ is the phase
(angle) in radians. These are related by the equation
a + bi = r cos θ + (r sin θ)i. All of a, b, r , and θ are real
numbers.
It does actually have a lot of R7RS support (like #!fold-case) however it doesn't seem to work with polar complex numbers (e.g; 2@1.5) or complex numbers with infnan (e.g; 3+inf.0i or +inf.0+3i).
more about the implementation: https://www.lisppad.app/applications/language