[#97086] [Ruby master Bug#16612] Enumerator::ArithmeticSequence#last with float range produces incorrect value — muraken@...
Issue #16612 has been updated by mrkn (Kenta Murata).
4 messages
2020/02/07
[#97307] [Ruby master Feature#16663] Add block or filtered forms of Kernel#caller to allow early bail-out — headius@...
Issue #16663 has been reported by headius (Charles Nutter).
29 messages
2020/02/28
[ruby-core:97065] [Ruby master Bug#16609] #select not working with blocks properly
From:
matz@...
Date:
2020-02-05 14:17:57 UTC
List:
ruby-core #97065
Issue #16609 has been updated by matz (Yukihiro Matsumoto).
Status changed from Open to Closed
`#sample` do not take blocks. They are just ignored. It's one of the limitations of Ruby language.
Matz.
----------------------------------------
Bug #16609: #select not working with blocks properly
https://bugs.ruby-lang.org/issues/16609#change-84165
* Author: LukeH7789 (Luke Hill)
* Status: Closed
* Priority: Normal
* ruby -v: 2.7.0 / 2.6.5
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I've tagged this as Bug, as it may be a bug, it may be a uncoded / partially working feature.
Observe the following is possible
```
a = [1, 2, 3, 4, 5, 6]
a.select(&:even?) #=> [2, 4, 6]
a.select { |e| e.even? } #=> [2, 4, 6]
a.sample #=> 3 (For example)
a.select(&:even?).sample #=> 2 or 4 or 6
```
However, running `#sample` with a block doesn't complain or throw an error. So the following code runs (But doesn't execute correctly).
```
a.sample(&:even?) #=> 1 or 3 or 5 is **expected**
a.sample { |e| e.even? } #=> 1 or 3 or 5 is **expected**
```
But if you run the second snippet you can get any number from 1 to 6. Here is a few runs
```
2.7.0 :004 > a.sample
=> 3
2.7.0 :005 > a.sample(&:even?)
=> 1
2.7.0 :006 > a.sample(&:even?)
=> 2
2.7.0 :007 > a.sample(&:even?)
=> 6
2.7.0 :008 > a.sample(&:even?)
=> 3
2.7.0 :009 > a.sample(&:even?)
=> 2
```
--
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>