Feature #5899
closed
Added by neleai (Ondrej Bilka) over 12 years ago.
Updated over 8 years ago.
Description
Migration from python to ruby is problematic because ruby lacks certain features.
Most important python advantage is chained comparison
We must wrap every comparison like described below.
puts "yes" if 1<2<3<4
class Fixnum
def <(a)
((self<=>a)==-1)&&a
end
end
class FalseClass
def <(a)
false
end
end
What is a good way to do chained comparison in Ruby?
My best attempt, so far, is
[1, 2, 3, 4].each_cons(2).all? {|a, b| a < b}
- Status changed from Open to Assigned
- Assignee set to matz (Yukihiro Matsumoto)
- Status changed from Assigned to Feedback
I don't think changing "1 < b < 4
" to "1 < b && b < 4
" is that hard task.
I am not sure it's worth allowing confusing "false < 4
".
Matz.
- Target version set to 2.6
Yukihiro Matsumoto wrote:
I don't think changing "1 < b < 4
" to "1 < b && b < 4
" is that hard task.
Writing 1 < b && b < 4
is not hard. But doesn't 1 < b < 4
look intriguing? It's so clean!
I would also expect a slight difference, namely that 1 < b < 4
evaluates b
once and 1 < b && b < 4
evaluates b
twice.
- Description updated (diff)
- Description updated (diff)
I don't think it's worth adding extra complexity to Ruby.
Matz.
- Status changed from Feedback to Rejected
- Description updated (diff)
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0