From c14192962705b68ac292a39857891cddafbbef79 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Mon, 23 Oct 2023 10:50:01 -0700 Subject: [PATCH] sequences.extras: rename supremum-by*/infimum-by* --- extra/sequences/extras/extras-docs.factor | 9 +++++---- extra/sequences/extras/extras-tests.factor | 6 +++--- extra/sequences/extras/extras.factor | 11 +++++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/extra/sequences/extras/extras-docs.factor b/extra/sequences/extras/extras-docs.factor index 98f0e594b6..4019aa4138 100644 --- a/extra/sequences/extras/extras-docs.factor +++ b/extra/sequences/extras/extras-docs.factor @@ -857,12 +857,12 @@ HELP: index-selector-as { "selector" object } { "accum" object } } ; -HELP: infimum-by* +HELP: minimum-by* { $values { "seq" sequence } { "quot" quotation } { "i" integer } { "elt" object } } -{ $description "A variant of " { $link infimum-by } " that pushes the index of the least element along with the least element." } ; +{ $description "A variant of " { $link minimum-by } " that pushes the index of the least element along with the least element." } ; HELP: insert-nth! { $values @@ -1324,11 +1324,12 @@ HELP: span-slices } { $description "Create a virtual sequence spanning the length covered by " { $snippet "slice1" } " and " { $snippet "slice2" } ". Slices must refer to the same sequence." } ; -HELP: supremum-by* +HELP: maximum-by* { $values { "seq" sequence } { "quot" quotation } { "i" integer } { "elt" object } -} ; +} +{ $description "A variant of " { $link maximum-by } " that pushes the index of the greated element along with the greatest element." } ; HELP: tail*-as { $values diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index c74c8e12b5..b63313fe51 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -268,9 +268,9 @@ strings tools.test ; { { 4 0 3 1 2 } } [ { 0 4 1 3 2 } 5 [ nth* ] curry map ] unit-test -{ 1 "beef" } [ { "chicken" "beef" "moose" } [ length ] infimum-by* ] unit-test -{ 0 "chicken" } [ { "chicken" "beef" "moose" } [ length ] supremum-by* ] unit-test -{ 2 "moose" } [ { "chicken" "beef" "moose" } [ first ] supremum-by* ] unit-test +{ 1 "beef" } [ { "chicken" "beef" "moose" } [ length ] minimum-by* ] unit-test +{ 0 "chicken" } [ { "chicken" "beef" "moose" } [ length ] maximum-by* ] unit-test +{ 2 "moose" } [ { "chicken" "beef" "moose" } [ first ] maximum-by* ] unit-test { f } [ f ?supremum ] unit-test { f } [ { } ?supremum ] unit-test { f } [ { f } ?supremum ] unit-test diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 3d39c6f7a8..07239ed917 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -890,17 +890,20 @@ ERROR: slice-error-of from to seq ; PRIVATE> -: supremum-by* ( ... seq quot: ( ... elt -- ... x ) -- ... i elt ) +: maximum-by* ( ... seq quot: ( ... elt -- ... x ) -- ... i elt ) [ after? ] select-by* ; inline -: infimum-by* ( ... seq quot: ( ... elt -- ... x ) -- ... i elt ) +: minimum-by* ( ... seq quot: ( ... elt -- ... x ) -- ... i elt ) [ before? ] select-by* ; inline +ALIAS: supremum-by* maximum-by* deprecated +ALIAS: infimum-by* minimum-by* deprecated + : arg-max ( seq -- n ) - [ ] supremum-by* drop ; + [ ] maximum-by* drop ; : arg-min ( seq -- n ) - [ ] infimum-by* drop ; + [ ] minimum-by* drop ; : ?supremum ( seq/f -- elt/f ) [ f ] [ -- 2.34.1