Issue #15741 has been updated by shevegen (Robert A. Heiler).
Check the date sawa. :)
The thing is, though ... if we ignore the date (and I guess nobu is having fun
since it may seem less obvious if mame creates the issue ;) ) ... actually I did
want to propose adding .second .third and so forth, since we have .first and .last
already.
The reason why was mostly for code like this:
some_array = [] # it gets filled with stuff
person_name = some_array.first
person_height = some_array[1]
person_age = some_array.last
Now for the moment let's ignore that a Hash would be better for this,
it is just meant for illustration purpose. My argument would be that
[1] looks strange when I already use .first and .last, so I wanted
to use .second instead.
However had ... my use case is not that good nonetheless. It's just
mostly a visual thing ... when I use [0], [1], [2] then this looks
fine; and when I use .first and .last this looks fine too. It only
looked strange when I would mix both.
Another problem was that, for example, how often would people use
something like .fifth? Or .sixth? Probably not that often. So I
sort of abandoned that ideal for a proposal.
I did, however had, also want to suggest another one on this first
april, aka to suggest a compiled variant of ruby. And while 95% of
this would have been meant as a joke, 5% would have been serious.
I twould not have to be ruby exactly, but just a compiled language,
a bit like the ruby-crystal situation (but matz would design it;
but no worries, even in my joke suggestion, I would not suggest
that matz would IMPLEMENT it - it was only meant for the design
stage). And probably a full alternative to C too. One reason here
was that many casual or less formal users do not know C yet the
really cool things all seem to happen in/through C.
----------------------------------------
Feature #15741: Ordinal parameters
https://bugs.ruby-lang.org/issues/15741#change-77415
* Author: mame (Yusuke Endoh)
* Status: Open
* Priority: Normal
* Assignee:
* Target version: Next Major
----------------------------------------
Numbered parameters have been introduced into trunk, and are still being hotly debated in #15723.
One of the problems of the feature is, too short, too symbolic, and then too cryptic. It resembles Perl.
I counterpropose "ordinal parameters":
```
$ ./miniruby -e '
[ [1, 1, 1], [2, 2, 2], [3, 3, 3] ].each { p 0th * 1st * 2rd }
'
1
8
27
```
Ordinal parameters are much better than numbered parameters in two points:
* It is English. No symbol is used. It looks nicer, doesn't it?
* Some people are complaining that `@1` is one-based. Instead, my proposal is zero-based: it starts with `0th`.
In other words, it no longer resembles the notorious `$1` at all.
You may wonder if it is too friendly for English speakers. Don't worry, it is carefully designed:
* It is tolerant of small errors. In fact, "2rd" (not "2nd") is allowed. This is because I often typo.
* Even "1th", "2th", and "3th" are allowed. Non-English-native programmers don't have to learn the difference among "st", "nd", "rd", and "th".
A patch is attached.
---Files--------------------------------
ordinal-parameters.patch (1.62 KB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>