[#86520] [Ruby trunk Bug#14681] `syswrite': stream closed in another thread (IOError) — samuel@...
Issue #14681 has been reported by ioquatix (Samuel Williams).
3 messages
2018/04/12
[#86755] [Ruby trunk Feature#14723] [WIP] sleepy GC — normalperson@...
Issue #14723 has been reported by normalperson (Eric Wong).
6 messages
2018/04/29
[ruby-core:86772] [Ruby trunk Feature#14724] chains of inequations
From:
nobu@...
Date:
2018-04-30 08:45:22 UTC
List:
ruby-core #86772
Issue #14724 has been updated by nobu (Nobuyoshi Nakada).
https://github.com/nobu/ruby/tree/feature/cmpseq
----------------------------------------
Feature #14724: chains of inequations
https://bugs.ruby-lang.org/issues/14724#change-71727
* Author: gotoken (Kentaro Goto)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
In mathematics, chain of inequations is a shorthand notation for the conjunction of several inequations involving common expressions.
For example, `a < b <= c` for `a < b && b <= c`
Chain notation makes code clearer, in particular, long common expression cases will be so. E.g.,
```
cur.to_i - 2 <= timeval.tv_sec <= cur.to_i
```
is easier to read than
```
cur.to_i - 2 <= timeval.tv_sec && timeval.tv_sec <= cur.to_i
```
because in the latter case we have to verify whether `timeval.tv_sec` is common or not by eyes.
Current syntax allows but redefining builtin methods are considered not practical. So here I request as a new syntax for the chains.
### Use cases (applicable conjunctions)
lib/matrix.rb:
```ruby
unless 0 <= column && column < column_count
```
lib/time.rb documents:
```ruby
# block. For example:
#
# Time.parse(...) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
```
spec/ruby/optional/capi/bignum_spec.rb:
```ruby
raise "Bignum#coerce returned Fixnum" if fixnum_min <= n && n <= fixnum_max
```
test/fiddle/test_import.rb:
```ruby
assert(cur.to_i - 2 <= timeval.tv_sec && timeval.tv_sec <= cur.to_i)
```
tool/jisx0208.rb:
```ruby
unless 0x8140 <= sjis && sjis <= 0xFCFC
```
--
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>