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
(ui.gadgets.baseline-alignment:?supremum).
> On Jun 21, 2017, at 8:57 AM, Alexander Ilin <ajs...@yandex.ru> wrote:
>
> In that case the behavior would be identical to the current one.
>
> 21.06.2017, 18:55, "Doug Coleman" <doug.cole...@gmail.com>:
>> 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 <ajvond...@gmail.com> wrote:
>> 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" <ajs...@yandex.ru> wrote:
>> ```
>> { f f f f } sift supremum
>> -> error is thrown
>> ```
>>
>> 21.06.2017, 18:44, "Alex Vondrak" <ajvond...@gmail.com>:
>>> 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" <ajs...@yandex.ru> 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 ( seq -- elt )
>>> [ ] [ max ] map-reduce ;
>>> ```
>>>
>>> Proposed code:
>>> ```
>>> : supremum ( seq -- elt )
>>> [ ] [ 2dup and [ max ] [ dupd ? ] if ] map-reduce ;
>>> ```
>>>
>>> If you like what you are seeing, I'll make a formal PRoposal.
>>>
>>> ---=====---
>>> Александр
>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Factor-talk mailing list
>>> Factor-talk@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>>> ,
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>
>>> ,
>>> _______________________________________________
>>> Factor-talk mailing list
>>> Factor-talk@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>>>
>>
>>
>> ---=====---
>> Александр
>>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Factor-talk mailing list
>> Factor-talk@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org!
>> http://sdm.link/slashdot_______________________________________________
>> Factor-talk mailing list
>> Factor-talk@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>> ,
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>
>> ,
>> _______________________________________________
>> Factor-talk mailing list
>> Factor-talk@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>>
>
>
> ---=====---
> Александр
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk