remove unmaintained combinators
parent
93de179c2f
commit
125de11efb
|
@ -1 +0,0 @@
|
|||
Eduardo Cavazos
|
|
@ -1,19 +0,0 @@
|
|||
|
||||
USING: kernel math math.functions tools.test combinators.cleave ;
|
||||
|
||||
IN: combinators.cleave.tests
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: unit-test* ( input output -- ) swap unit-test ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
[ { [ 1 ] [ 2 ] [ 3 ] [ 4 ] } 0arr ] [ { 1 2 3 4 } ] unit-test*
|
||||
|
||||
[ 3 { 1+ 1- 2^ } 1arr ] [ { 4 2 8 } ] unit-test*
|
||||
|
||||
[ 3 4 { [ + ] [ - ] [ ^ ] } 2arr ] [ { 7 -1 81 } ] unit-test*
|
||||
|
||||
[ 1 2 3 { [ + + ] [ - - ] [ * * ] } 3arr ] [ { 6 2 6 } ] unit-test*
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
|
||||
USING: kernel combinators words quotations arrays sequences locals macros
|
||||
shuffle generalizations fry ;
|
||||
|
||||
IN: combinators.cleave
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: >quot ( obj -- quot ) dup word? [ 1quotation ] when ;
|
||||
|
||||
: >quots ( seq -- seq ) [ >quot ] map ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
:: [ncleave] ( SEQ N -- quot )
|
||||
SEQ >quots [ [ N nkeep ] curry ] map concat [ N ndrop ] append >quotation ;
|
||||
|
||||
MACRO: ncleave ( seq n -- quot ) [ncleave] ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Cleave into array
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: [narr] ( seq n -- quot ) over length '[ _ _ ncleave _ narray ] ;
|
||||
|
||||
MACRO: narr ( seq n -- array ) [narr] ;
|
||||
|
||||
MACRO: 0arr ( seq -- array ) 0 [narr] ;
|
||||
MACRO: 1arr ( seq -- array ) 1 [narr] ;
|
||||
MACRO: 2arr ( seq -- array ) 2 [narr] ;
|
||||
MACRO: 3arr ( seq -- array ) 3 [narr] ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
MACRO: <arr> ( seq -- )
|
||||
[ >quots ] [ length ] bi
|
||||
'[ _ cleave _ narray ] ;
|
||||
|
||||
MACRO: <2arr> ( seq -- )
|
||||
[ >quots ] [ length ] bi
|
||||
'[ _ 2cleave _ narray ] ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: {1} ( x -- {x} ) 1array ; inline
|
||||
: {2} ( x y -- {x,y} ) 2array ; inline
|
||||
: {3} ( x y z -- {x,y,z} ) 3array ; inline
|
||||
|
||||
: {n} narray ;
|
||||
|
||||
: {bi} ( x p q -- {p(x),q(x)} ) bi {2} ; inline
|
||||
|
||||
: {tri} ( x p q r -- {p(x),q(x),r(x)} ) tri {3} ; inline
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! Spread into array
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
MACRO: <arr*> ( seq -- )
|
||||
[ >quots ] [ length ] bi
|
||||
'[ _ spread _ narray ] ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: {bi*} ( x y p q -- {p(x),q(y)} ) bi* {2} ; inline
|
||||
: {tri*} ( x y z p q r -- {p(x),q(y),r(z)} ) tri* {3} ; inline
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
USING: combinators.cleave fry kernel macros parser quotations ;
|
||||
|
||||
IN: combinators.cleave.enhanced
|
||||
|
||||
: \\
|
||||
scan-word literalize parsed
|
||||
scan-word literalize parsed ; parsing
|
||||
|
||||
MACRO: bi ( p q -- quot )
|
||||
[ >quot ] dip
|
||||
>quot
|
||||
'[ _ _ [ keep ] dip call ] ;
|
||||
|
||||
MACRO: tri ( p q r -- quot )
|
||||
[ >quot ] 2dip
|
||||
[ >quot ] dip
|
||||
>quot
|
||||
'[ _ _ _ [ [ keep ] dip keep ] dip call ] ;
|
||||
|
||||
MACRO: bi* ( p q -- quot )
|
||||
[ >quot ] dip
|
||||
>quot
|
||||
'[ _ _ [ dip ] dip call ] ;
|
||||
|
||||
MACRO: tri* ( p q r -- quot )
|
||||
[ >quot ] 2dip
|
||||
[ >quot ] dip
|
||||
>quot
|
||||
'[ _ _ _ [ [ 2dip ] dip dip ] dip call ] ;
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
USING: kernel combinators sequences macros fry newfx combinators.cleave ;
|
||||
|
||||
IN: combinators.conditional
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
MACRO: 1if ( test then else -- ) '[ dup @ _ _ if ] ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
MACRO: 1cond ( tbl -- )
|
||||
[ [ 1st [ dup ] prepend ] [ 2nd ] bi {2} ] map
|
||||
[ cond ] prefix-on ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
Loading…
Reference in New Issue