Skip to content

Comment on Ruckus: Racket for iOSparent

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.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.