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

Reply via email to