]> gitweb.factorcode.org Git - factor.git/commitdiff
Refactored (minimum) and (maximum)
authornomennescio <nomennescio@factorcode.org>
Mon, 16 Oct 2023 00:49:26 +0000 (02:49 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 23 Oct 2023 17:28:52 +0000 (10:28 -0700)
Based on review comment of John

core/sequences/sequences-tests.factor
core/sequences/sequences.factor
extra/sequences/repeating/repeating.factor

index 24262f31465c62fc1d8f1e65167cba5a1fffeb26..019c303064d270e594f73fbb8b9261a3cf4eebcd 100644 (file)
@@ -390,8 +390,6 @@ M: bogus-hashcode hashcode* 2drop 0 >bignum ;
 { 24 } [ { 1 2 } { 3 4 } [ + ] [ * ] 2map-reduce ] unit-test
 { 2 96 } [ 2 { 3 3 3 3 } { 4 4 4 4 } [ [ dup ] 2dip * * ] [ + ] 2map-reduce ] unit-test
 
-{ 4 } [ 5 <iota> (maximum) ] unit-test
-{ 0 } [ 5 <iota> (minimum) ] unit-test
 { 4 } [ 5 <iota> supremum ] unit-test
 { 0 } [ 5 <iota> infimum ] unit-test
 { 4 } [ 5 <iota> maximum ] unit-test
index 56c13805adce858e20445b93daab89cf01245d1d..959a3225d947346b2e0ac9a27ebb3700ac54b05c 100644 (file)
@@ -1141,17 +1141,15 @@ M: iota sum length dup 1 - * 2/ ; inline
 M: repetition sum [ elt>> ] [ length>> ] bi * ; inline
 
 : product ( seq -- n ) 1 [ * ] binary-reduce ;
-: (minimum) ( seq -- n ) [ ] [ min ] map-reduce ;
-: (maximum) ( seq -- n ) [ ] [ max ] map-reduce ;
 
 GENERIC: minimum ( seq -- elt )
-M: sequence minimum (minimum) ; inline
+M: sequence minimum [ ] [ min ] map-reduce ; inline
 M: iota minimum drop 0 ; inline
 M: reversed minimum seq>> minimum ; inline
 M: repetition minimum elt>> ; inline
 
 GENERIC: maximum ( seq -- elt )
-M: sequence maximum (maximum) ; inline
+M: sequence maximum [ ] [ max ] map-reduce ; inline
 M: iota maximum n>> 1 - ; inline
 M: reversed maximum seq>> maximum ; inline
 M: repetition maximum elt>> ; inline
index fdfef64bfd711ef8734d76bc781687c1ae462c1c..0e7934a18272c7d47d949f00026815e9ed6b7aa8 100644 (file)
@@ -34,8 +34,8 @@ INSTANCE: cycles virtual-sequence
 
 PRIVATE>
 
-M: cycles minimum dup full-cycle? [ circular>> minimum ] [ (minimum) ] if ; inline
-M: cycles maximum dup full-cycle? [ circular>> maximum ] [ (maximum) ] if ; inline
+M: cycles minimum dup full-cycle? [ circular>> minimum ] [ call-next-method ] if ; inline
+M: cycles maximum dup full-cycle? [ circular>> maximum ] [ call-next-method ] if ; inline
 
 TUPLE: element-repeats < sequence-view
 { times integer read-only } ;