News for hackers. Stuff that matters.
Re:Show HN: Array – A Better Python List by pansa2 on Sunday January 10, 2021 @09:08AM (#25714729)
> bool(Array(False, False)) would evaluate to True

Isn't that consistent with the built-in `list`, though, because `bool([False, False])` is True?

Re:Show HN: Array – A Better Python List by lauriat on Sunday January 10, 2021 @09:41AM (#25715005)
My explanation was pretty poor, let me rephrase

For example, when calling

  Array((x, y), (z, w)).index((z, w))
the following piece of code is executed

  bool(Array((x, y)).__eq__((z, w)))
  = bool(Array(False, False))
 
If __bool__ returned whether the Array is nonempty, bool(Array(False, False)) would evaluate to True and the method would wrongly return 0.

You're right that it would be more clear if __bool__ would behave similarly, but since Array computes operations element-wise, it isn't possible.

Re:Show HN: Array – A Better Python List by wodenokoto on Monday January 11, 2021 @06:56AM (#25727766)
I think the complaint is that you are using `bool` as a `all()` call on your Arrays.

If you used `all()` in your implementation instead, you could be compatible with the idiomatic use of `bool(my_list)` and the _very_ common `if my_list:` structure could be used with Arrays too (like most people probably would expect from a "better list type")

Regardless, Pandas struggles with the same problem, so you are at least in good company :)