diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 004beed3d3..de30940973 100644 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -1031,17 +1031,23 @@ M: object sum 0 [ + ] binary-reduce ; inline : each-from ( ... seq quot: ( ... x -- ... ) i -- ... ) -rot (each) (each-integer) ; inline + + : supremum-by ( ... seq quot: ( ... elt -- ... x ) -- ... elt ) - [ keep swap ] curry [ [ first ] dip call ] 2keep [ - curry 2dip pick over after? - [ 2drop ] [ [ 2drop ] 2dip ] if - ] curry 1 each-from drop ; inline + [ after? ] select-by ; inline : infimum-by ( ... seq quot: ( ... elt -- ... x ) -- ... elt ) - [ keep swap ] curry [ [ first ] dip call ] 2keep [ - curry 2dip pick over before? - [ 2drop ] [ [ 2drop ] 2dip ] if - ] curry 1 each-from drop ; inline + [ before? ] select-by ; inline : shortest ( seqs -- elt ) [ length ] infimum-by ;