Hacker News new | ask | show | jobs
by roxolotl 71 days ago
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.

https://apps.apple.com/us/app/lisppad-go/id1565747728

2 comments

I just tried this out, this is amazing!

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

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.

Thanks for the reference! I must have overlooked this when implementing the scanner. Will definitely be added. Thanks for letting me know.
Didn't Apple restrict language interpreters on App Store?
They restricted JIT, interpreters are fine afaik. See also dart etc.

Edit: JIT is under a flag, https://developer.apple.com/documentation/bundleresources/en...

So no JIT conversion to byte code either?