Maybe contribute a `?supremum` to sequences.extras?
You could define it to return `f` on empty sequence and ignore `f` elements?
If it's useful we could change supremum or move to core.
Add infimum also.
And note that we use sift supremum in at least one place
I'm not sure what else is in your vector, but you could return -1 instead
of f, or some null object for which you define a comparison operator, or
just sift (it's probably fast enough even on large arrays).
sift is removing the first element here (vector looks like { f 1 2 3 4 5
... }
10,000,000
In that case the behavior would be identical to the current one. 21.06.2017, 18:55, "Doug Coleman" :What should supremum do if you have no elements in the sequence? numpy throws an error too: In [1]: import numpy as npIn [2]: np.max(np.array([])) ValueError: zero-size array
You are correct. I'm kind of adding the rule that `f` is smaller than anything else in terms of `math.order:max`.I also dislike the idea of making a copy of an array in case there are no `f` elements, which `sift` would do.I'm dealing with pretty big arrays here, so anything postponing the
What should supremum do if you have no elements in the sequence?
numpy throws an error too:
In [1]: import numpy as np
In [2]: np.max(np.array([]))
ValueError: zero-size array to reduction operation maximum which has no
identity
On Wed, Jun 21, 2017 at 10:52 AM Alex Vondrak
Technically that case would be a matter of `supremum` handling empty
arrays, not `f` elements per se.
On Jun 21, 2017 8:48 AM, "Alexander Ilin" wrote:
```
{ f f f f } sift supremum
-> error is thrown
```
21.06.2017, 18:44, "Alex Vondrak" :
Or you could
```{ f f f f } sift supremum-> error is thrown``` 21.06.2017, 18:44, "Alex Vondrak" :Or you could call `sift supremum`: http://docs.factorcode.org/content/word-sift,sequences.html Might be instructive to give the codebase a search, see how often that pattern is used. (Can't do
Or you could call `sift supremum`:
http://docs.factorcode.org/content/word-sift,sequences.html
Might be instructive to give the codebase a search, see how often that
pattern is used. (Can't do it myself right now - on mobile.)
On Jun 21, 2017 8:39 AM, "Alexander Ilin" wrote:
Hello!
How would you like if `supremum` tolerated the `f` elements?
Now:
```
{ f 0 1 2 } supremum
-> error is thrown
{ f f f f } supremum
-> error is thrown
```
Proposition:
```
{ f 0 1 2 } supremum
-> 2
{ f f f f } supremum
-> f
```
Current code:
```
: supremum (