From: Doug Coleman Date: Mon, 29 Aug 2022 22:25:38 +0000 (-0500) Subject: math: reorder the cleaned-up iteration combinators find-integer each-integer X-Git-Tag: 0.99~1103 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=2b23ffb6f7597e2f1a71da446944b6e836b88c22 math: reorder the cleaned-up iteration combinators find-integer each-integer --- diff --git a/core/math/math.factor b/core/math/math.factor index c4178b0f09..c88f274141 100644 --- a/core/math/math.factor +++ b/core/math/math.factor @@ -255,6 +255,12 @@ GENERIC: prev-float ( m -- n ) 3drop ] if ; inline recursive +: each-integer ( ... n quot: ( ... i -- ... ) -- ... ) + [ 0 ] 2dip each-integer-from ; inline + +: times ( ... n quot: ( ... -- ... ) -- ... ) + [ drop ] prepose each-integer ; inline + : find-integer-from ( ... i n quot: ( ... i -- ... ? ) -- ... i/f ) 2over < [ [ nip call ] 3keep roll @@ -264,27 +270,9 @@ GENERIC: prev-float ( m -- n ) 3drop f ] if ; inline recursive -: all-integers-from? ( ... i n quot: ( ... i -- ... ? ) -- ... ? ) - 2over < [ - [ nip call ] 3keep roll - [ [ 1 + ] 2dip all-integers-from? ] - [ 3drop f ] if - ] [ - 3drop t - ] if ; inline recursive - -: each-integer ( ... n quot: ( ... i -- ... ) -- ... ) - [ 0 ] 2dip each-integer-from ; inline - -: times ( ... n quot: ( ... -- ... ) -- ... ) - [ drop ] prepose each-integer ; inline - : find-integer ( ... n quot: ( ... i -- ... ? ) -- ... i/f ) [ 0 ] 2dip find-integer-from ; inline -: all-integers? ( ... n quot: ( ... i -- ... ? ) -- ... ? ) - [ 0 ] 2dip all-integers-from? ; inline - : find-last-integer ( ... n quot: ( ... i -- ... ? ) -- ... i/f ) over 0 < [ 2drop f @@ -295,3 +283,15 @@ GENERIC: prev-float ( m -- n ) [ 1 - ] dip find-last-integer ] if ] if ; inline recursive + +: all-integers-from? ( ... i n quot: ( ... i -- ... ? ) -- ... ? ) + 2over < [ + [ nip call ] 3keep roll + [ [ 1 + ] 2dip all-integers-from? ] + [ 3drop f ] if + ] [ + 3drop t + ] if ; inline recursive + +: all-integers? ( ... n quot: ( ... i -- ... ? ) -- ... ? ) + [ 0 ] 2dip all-integers-from? ; inline