Issue #13208 has been updated by duerst (Martin Drst).


stomar (Marcus Stollsteimer) wrote:
> Just curious:
> 
> ``` ruby
> Vector.zero(0).zero?  # => true or false?
> ```
> 
> Not sure what I would expect in this case.

Definitely `true`. More generally,

``` ruby
Vector.zero(x).zero?  # => true
```
for any value of `x`.

Colloquially, all the values in the vector are zero, even if there aren't that many values there. 

That also matches how Mathematics works.

It also works best that way in programming. The simplest implementation of `zero?` is something like

``` ruby
class Vector
  def zero?
    all { |e| e.zero? }
  end
end
```

which will automatically give the right result.

----------------------------------------
Feature #13208: Vector.zero(n) and vector.zero?
https://bugs.ruby-lang.org/issues/13208#change-63608

* Author: qitar888 (Chia-sheng Chen)
* Status: Closed
* Priority: Normal
* Assignee: marcandre (Marc-Andre Lafortune)
* Target version: 
----------------------------------------
Found that I need this recently, and class `Matrix` has these two function while `Vector` not.
So I add two function based on `Matrix` counterpart and also add test.

Usage

``` ruby
require 'matrix'
v = Vector.zero(3)  # => Vector[0, 0, 0]
v.zero?  # => true
w = Vector[1, 0, 0]
w.zero?  # => false
```

---Files--------------------------------
0001-Add-Vector.zero-n-and-vector.zero.patch (2.06 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>