Issue #8430 has been updated by mrkn (Kenta Murata).


matz (Yukihiro Matsumoto) wrote:
> The final idea was "1r" to be "Rational(1,1)".  We also accept the idea of "1i" as "Complex(0,1)".

Additionaly them, "1.2r" as "Rational(12, 10)" is also accepted.
But the exponential form with "r" suffix like "1e-5r" is not accepted because it can make us confusing.
----------------------------------------
Feature #8430: Rational number literal
https://bugs.ruby-lang.org/issues/8430#change-40714

Author: mrkn (Kenta Murata)
Status: Open
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: current: 2.1.0


I would like to propose a new literal syntax for rational numbers.
The implementation is available in my github repository:
https://github.com/mrkn/ruby/commit/8ca0c9a53593e55d67f509fc403df616e2276e3a

This patch implements a notation that consists of an integer, "//", and another integer, in a row.
The first integer is the numerator, and the second is the denominator.
Whitespaces are permitted between them.

For example:
    1 // 2 == Rational(1, 2)
    1 // 1 == Rational(1, 1)
    0 // 1 == Rational(0, 1)

"0 // 0" occurs syntax error.

I think this new syntax isn't conflict with an empty regexp
because this implementation doesn't treat // as a binary operator.



-- 
http://bugs.ruby-lang.org/