Slight cleanup
parent
5b4809e49d
commit
229ad78907
|
|
@ -20,26 +20,25 @@ GENERIC: assoc-clone-like ( assoc exemplar -- newassoc )
|
|||
|
||||
GENERIC: >alist ( assoc -- newassoc )
|
||||
|
||||
: (assoc-each) ( assoc quot -- seq quot' )
|
||||
>r >alist r> [ first2 ] prepose ; inline
|
||||
|
||||
: assoc-find ( assoc quot -- key value ? )
|
||||
>r >alist r> [ first2 ] prepose find swap
|
||||
[ first2 t ] [ drop f f f ] if ; inline
|
||||
(assoc-each) find swap [ first2 t ] [ drop f f f ] if ; inline
|
||||
|
||||
: key? ( key assoc -- ? ) at* nip ; inline
|
||||
|
||||
: assoc-each ( assoc quot -- )
|
||||
[ f ] compose assoc-find 3drop ; inline
|
||||
|
||||
: (assoc>map) ( quot accum -- quot' )
|
||||
[ push ] curry compose ; inline
|
||||
(assoc-each) each ; inline
|
||||
|
||||
: assoc>map ( assoc quot exemplar -- seq )
|
||||
>r over assoc-size
|
||||
<vector> [ (assoc>map) assoc-each ] keep
|
||||
r> like ; inline
|
||||
>r accumulator >r assoc-each r> r> like ; inline
|
||||
|
||||
: assoc-map-as ( assoc quot exemplar -- newassoc )
|
||||
>r [ 2array ] compose V{ } assoc>map r> assoc-like ; inline
|
||||
|
||||
: assoc-map ( assoc quot -- newassoc )
|
||||
over >r [ 2array ] compose V{ } assoc>map r> assoc-like ;
|
||||
inline
|
||||
over assoc-map-as ; inline
|
||||
|
||||
: assoc-push-if ( key value quot accum -- )
|
||||
>r 2keep r> roll
|
||||
|
|
|
|||
|
|
@ -419,10 +419,11 @@ PRIVATE>
|
|||
: interleave ( seq between quot -- )
|
||||
[ (interleave) ] 2curry >r dup length swap r> 2each ; inline
|
||||
|
||||
: accumulator ( quot -- quot' vec )
|
||||
V{ } clone [ [ push ] curry compose ] keep ; inline
|
||||
|
||||
: unfold ( pred quot tail -- seq )
|
||||
V{ } clone [
|
||||
swap >r [ push ] curry compose r> while
|
||||
] keep { } like ; inline
|
||||
swap accumulator >r swap while r> { } like ; inline
|
||||
|
||||
: follow ( obj quot -- seq )
|
||||
>r [ dup ] r> [ keep ] curry [ ] unfold nip ; inline
|
||||
|
|
|
|||
|
|
@ -201,9 +201,6 @@ USE: continuations
|
|||
>r >r 0 max r> r>
|
||||
[ length tuck min >r min r> ] keep subseq ;
|
||||
|
||||
: accumulator ( quot -- quot vec )
|
||||
V{ } clone [ [ push ] curry compose ] keep ; inline
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
! List the positions of obj in seq
|
||||
|
|
|
|||
Loading…
Reference in New Issue