From: "phluid61 (Matthew Kerwin)" Date: 2013-05-22T13:45:36+09:00 Subject: [ruby-core:55109] [ruby-trunk - Feature #8430] Rational number literal Issue #8430 has been updated by phluid61 (Matthew Kerwin). charliesome (Charlie Somerville) wrote: > > Also, I guess runtime cost would not change much if it were introduced as operator. > > Rational is immutable, so if it it was introduced as a literal, the same Rational instance could be re-used, similar to how symbols and fixnums work. > > If // was introduced as an operator, a new object would need to be allocated each time, similar to strings. At the risk of asking something stupid, could it be both? I'm thinking of unary minus / literal negative number. (Assuming there's such a thing in Ruby as a literal negative (?)) ---------------------------------------- Feature #8430: Rational number literal https://bugs.ruby-lang.org/issues/8430#change-39476 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/