sequences: rename setup-each to (each).
...to match (each-from), (2each), and (3each), etc.factor-shell
							parent
							
								
									1a952a1fdc
								
							
						
					
					
						commit
						37794a326c
					
				| 
						 | 
				
			
			@ -76,7 +76,7 @@ PRIVATE>
 | 
			
		|||
        2 = [
 | 
			
		||||
            [ first2-unsafe ] dip call
 | 
			
		||||
        ] [
 | 
			
		||||
            [ [ first-unsafe 1 ] [ (setup-each) ] bi ] dip
 | 
			
		||||
            [ [ first-unsafe 1 ] [ setup-each ] bi ] dip
 | 
			
		||||
            '[ @ _ keep swap ] (all-integers?) nip
 | 
			
		||||
        ] if
 | 
			
		||||
    ] if ; inline
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -388,14 +388,14 @@ PRIVATE>
 | 
			
		|||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
 | 
			
		||||
: (setup-each) ( seq -- n quot )
 | 
			
		||||
: setup-each ( seq -- n quot )
 | 
			
		||||
    [ length check-length ] keep [ nth-unsafe ] curry ; inline
 | 
			
		||||
 | 
			
		||||
: setup-each ( seq quot -- n quot' )
 | 
			
		||||
    [ (setup-each) ] dip compose ; inline
 | 
			
		||||
: (each) ( seq quot -- n quot' )
 | 
			
		||||
    [ setup-each ] dip compose ; inline
 | 
			
		||||
 | 
			
		||||
: (each-index) ( seq quot -- n quot' )
 | 
			
		||||
    [ (setup-each) [ keep ] curry ] dip compose ; inline
 | 
			
		||||
    [ setup-each [ keep ] curry ] dip compose ; inline
 | 
			
		||||
 | 
			
		||||
: (collect) ( quot into -- quot' )
 | 
			
		||||
    [ [ keep ] dip set-nth-unsafe ] 2curry ; inline
 | 
			
		||||
| 
						 | 
				
			
			@ -404,7 +404,7 @@ PRIVATE>
 | 
			
		|||
    (collect) each-integer ; inline
 | 
			
		||||
 | 
			
		||||
: map-into ( seq quot into -- )
 | 
			
		||||
    [ setup-each ] dip collect ; inline
 | 
			
		||||
    [ (each) ] dip collect ; inline
 | 
			
		||||
 | 
			
		||||
: 2nth-unsafe ( n seq1 seq2 -- elt1 elt2 )
 | 
			
		||||
    [ nth-unsafe ] bi-curry@ bi ; inline
 | 
			
		||||
| 
						 | 
				
			
			@ -418,17 +418,18 @@ PRIVATE>
 | 
			
		|||
: 3nth-unsafe ( n seq1 seq2 seq3 -- elt1 elt2 elt3 )
 | 
			
		||||
    [ nth-unsafe ] tri-curry@ tri ; inline
 | 
			
		||||
 | 
			
		||||
: setup-3each ( seq1 seq2 seq3 -- n quot )
 | 
			
		||||
    [ [ length ] tri@ min min check-length ]
 | 
			
		||||
    [ [ 3nth-unsafe ] 3curry ] 3bi ; inline
 | 
			
		||||
 | 
			
		||||
: (3each) ( seq1 seq2 seq3 quot -- n quot' )
 | 
			
		||||
    [
 | 
			
		||||
        [ [ length ] tri@ min min check-length ]
 | 
			
		||||
        [ [ 3nth-unsafe ] 3curry ] 3bi
 | 
			
		||||
    ] dip compose ; inline
 | 
			
		||||
    [ setup-3each ] dip compose ; inline
 | 
			
		||||
 | 
			
		||||
: finish-find ( i seq -- i elt )
 | 
			
		||||
    over [ dupd nth-unsafe ] [ drop f ] if ; inline
 | 
			
		||||
 | 
			
		||||
: (find) ( seq quot quot' -- i elt )
 | 
			
		||||
    pick [ [ setup-each ] dip call ] dip finish-find ; inline
 | 
			
		||||
    pick [ [ (each) ] dip call ] dip finish-find ; inline
 | 
			
		||||
 | 
			
		||||
: (find-from) ( n seq quot quot' -- i elt )
 | 
			
		||||
    [ 2dup bounds-check? ] 2dip
 | 
			
		||||
| 
						 | 
				
			
			@ -454,10 +455,10 @@ PRIVATE>
 | 
			
		|||
PRIVATE>
 | 
			
		||||
 | 
			
		||||
: each ( ... seq quot: ( ... x -- ... ) -- ... )
 | 
			
		||||
    setup-each each-integer ; inline
 | 
			
		||||
    (each) each-integer ; inline
 | 
			
		||||
 | 
			
		||||
: each-from ( ... seq quot: ( ... x -- ... ) i -- ... )
 | 
			
		||||
    -rot setup-each (each-integer) ; inline
 | 
			
		||||
    -rot (each) (each-integer) ; inline
 | 
			
		||||
 | 
			
		||||
: reduce ( ... seq identity quot: ( ... prev elt -- ... next ) -- ... result )
 | 
			
		||||
    swapd each ; inline
 | 
			
		||||
| 
						 | 
				
			
			@ -466,7 +467,7 @@ PRIVATE>
 | 
			
		|||
    [ over ] dip [ [ collect ] keep ] new-like ; inline
 | 
			
		||||
 | 
			
		||||
: map-as ( ... seq quot: ( ... elt -- ... newelt ) exemplar -- ... newseq )
 | 
			
		||||
    [ setup-each ] dip map-integers ; inline
 | 
			
		||||
    [ (each) ] dip map-integers ; inline
 | 
			
		||||
 | 
			
		||||
: map ( ... seq quot: ( ... elt -- ... newelt ) -- ... newseq )
 | 
			
		||||
    over map-as ; inline
 | 
			
		||||
| 
						 | 
				
			
			@ -544,7 +545,7 @@ PRIVATE>
 | 
			
		|||
    [ find-integer ] (find-index) ; inline
 | 
			
		||||
 | 
			
		||||
: all? ( ... seq quot: ( ... elt -- ... ? ) -- ... ? )
 | 
			
		||||
    setup-each all-integers? ; inline
 | 
			
		||||
    (each) all-integers? ; inline
 | 
			
		||||
 | 
			
		||||
: push-if ( ..a elt quot: ( ..a elt -- ..b ? ) accum -- ..b )
 | 
			
		||||
    [ keep ] dip rot [ push ] [ 2drop ] if ; inline
 | 
			
		||||
| 
						 | 
				
			
			@ -1109,7 +1110,7 @@ PRIVATE>
 | 
			
		|||
: generic-flip ( matrix -- newmatrix )
 | 
			
		||||
    [
 | 
			
		||||
        [ first-unsafe length 1 ] keep
 | 
			
		||||
        [ length min ] setup-each (each-integer) <iota>
 | 
			
		||||
        [ length min ] (each) (each-integer) <iota>
 | 
			
		||||
    ] keep
 | 
			
		||||
    [ [ nth-unsafe ] with { } map-as ] curry { } map-as ; inline
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1122,7 +1123,7 @@ USE: arrays
 | 
			
		|||
    { array } declare
 | 
			
		||||
    [
 | 
			
		||||
        [ first-unsafe array-length 1 ] keep
 | 
			
		||||
        [ array-length min ] setup-each (each-integer) <iota>
 | 
			
		||||
        [ array-length min ] (each) (each-integer) <iota>
 | 
			
		||||
    ] keep
 | 
			
		||||
    [ [ { array } declare array-nth ] with { } map-as ] curry { } map-as ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue