Rat is a type (a 'class').

It is also a method on class Numeric.  You can take anything Numeric, and
call .Rat() on it to get an equivalent Rat (well, within $epsilon)

You can't, for example, say
my Rat $x = pi;
Since pi is not rational -- it won't fit in that box.
You can, however, ask pi to turn itself into a Rat (or something pretty
close), then it will fit.
my Rat $x = pi.Rat;


On Sun, Sep 16, 2018 at 10:29 PM ToddAndMargo <toddandma...@zoho.com> wrote:

> Hi All,
>
> What in the world are they trying to say here?
>
> https://docs.perl6.org/routine/Rat
>      (Numeric) method Rat
>
>      method Rat(Numeric:D: Real $epsilon = 1.0e-6 --> Rat:D)
>
>      If this Numeric is equivalent to a Real, return a Rat which
>      is within $epsilon of that Real's value. Fail
>      with X::Numeric::Real otherwise.
>
> And is this why I can not find a type "Rat"?  Because
> it is a method?
>
> Then why does
>      $ p6 'my Real $x; $x = 3.1415; dd $x;'
>      Rat $x = 3.1415
> say it is a type "Rat"?
>
>
> Yours in confusion,
> -T
>

Reply via email to