Re: confusion about real vs not real zero

Stephen Chang <[email protected]> Fri, 19 Nov 2021 15:30:09 -0500
Newsgroups gmane.comp.lang.racket.user,gmane.lisp.scheme.plt
Message-ID <CAFfiA1K-pso_eyGDJ98UFfi1GjPHUoxvPkM_7CZ-L5WerV6g2g@mail.gmail.com>
I dont want to fully support complex numbers. I just want to do the
minimum so that programs that dont use them are not blocked by the
lack of support

On Fri, Nov 19, 2021 at 3:30 PM Sorawee Porncharoenwase
<[email protected]> wrote:
>
> Yeah, I was about to reply that I don't think there's a workaround, too.
>
> What is your goal, though? Do you intend to support complex numbers prope=
rly right now? In particular, that problematic code is random generation fr=
om contracts, which is rarely invoked anyway. Intuitively, there's no reaso=
n why the complex number feature is required to get the code running.
>
> So one potential solution is to not support complex numbers right now, an=
d compile all complex number literals to a JS expression that throws an exc=
eption at runtime.
>
>
>
> On Fri, Nov 19, 2021 at 12:20 PM Sam Tobin-Hochstadt <[email protected]> =
wrote:
>>
>> On Fri, Nov 19, 2021 at 3:13 PM Stephen Chang <[email protected]> wro=
te:
>> >
>> > Lol I read that page and still didn't get it.
>> >
>> > Any opinion for a potential workaround?
>>
>> It depends what you mean by "workaround". The distinction between
>> exact and inexact numbers is pretty deeply built-in to how Racket
>> numbers work, so there's not going to be a simple workaround that
>> fixes this issue.
>>
>> For RacketScript I think the choices are (a) use floats for everything
>> and have semantics that diverge substantially from Racket or (b) have
>> a separate implementation of integers that's not JS numbers (maybe JS
>> bigints would work).
>>
>> Sam
>>
>> >
>> > On Fri, Nov 19, 2021 at 3:08 PM Sorawee Porncharoenwase
>> > <[email protected]> wrote:
>> > >
>> > > I had this exact same question when I looked at the RacketScript iss=
ue lol.
>> > >
>> > > The answer is https://docs.racket-lang.org/reference/numbers.html:
>> > >
>> > > a complex number with an exact zero imaginary part is a real number.
>> > >
>> > > Since 0.0 is not exact, 0.0i is not a real number.
>> > >
>> > > On Fri, Nov 19, 2021 at 11:59 AM Stephen Chang <[email protected]=
> wrote:
>> > >>
>> > >> In the following, why is the first considered a real number but the
>> > >> second considered not real
>> > >>
>> > >> > (real? 0.0+0i)
>> > >> #t
>> > >> > (real? 0.0+0.0i)
>> > >> #f
>> > >>
>> > >> --
>> > >> You received this message because you are subscribed to the Google =
Groups "Racket Users" group.
>> > >> To unsubscribe from this group and stop receiving emails from it, s=
end an email to racket-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
>> > >> To view this discussion on the web visit https://groups.google.com/=
d/msgid/racket-users/CAFfiA1%2BYygGrLH2rtwby8AWg7Edyvq-tzmANTNypq5Rqd-eXFw%=
40mail.gmail.com.
>> >
>> > --
>> > You received this message because you are subscribed to the Google Gro=
ups "Racket Users" group.
>> > To unsubscribe from this group and stop receiving emails from it, send=
 an email to racket-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
>> > To view this discussion on the web visit https://groups.google.com/d/m=
sgid/racket-users/CAFfiA1%2B3yRzzh%3DKhcOddt0geMezNsxQGHqzwGTYbZjLekUQ8kQ%4=
0mail.gmail.com.

--=20
You received this message because you are subscribed to the Google Groups "=
Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to racket-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion on the web visit https://groups.google.com/d/msgid/=
racket-users/CAFfiA1K-pso_eyGDJ98UFfi1GjPHUoxvPkM_7CZ-L5WerV6g2g%40mail.gma=
il.com.