sequences.extras: using sift.

db4
John Benediktsson 2014-12-06 21:20:24 -08:00
parent 17de36ddfc
commit a7b782542d
2 changed files with 5 additions and 5 deletions

View File

@ -25,7 +25,7 @@ IN: sequences.extras
: find-all ( seq quot: ( elt -- ? ) -- elts ) : find-all ( seq quot: ( elt -- ? ) -- elts )
[ [ length iota ] keep ] dip [ [ length iota ] keep ] dip
[ dupd call( a -- ? ) [ 2array ] [ 2drop f ] if ] curry [ dupd call( a -- ? ) [ 2array ] [ 2drop f ] if ] curry
2map [ ] filter ; inline 2map sift ; inline
: reduce-from ( ... seq identity quot: ( ... prev elt -- ... next ) i -- ... result ) : reduce-from ( ... seq identity quot: ( ... prev elt -- ... next ) i -- ... result )
[ swap ] 2dip each-from ; inline [ swap ] 2dip each-from ; inline

View File

@ -212,14 +212,14 @@ TUPLE: face { halfspace array }
: intersections-into-faces ( face -- faces ) : intersections-into-faces ( face -- faces )
clone dup clone dup
adjacent-faces>> [ intersection-into-face ] with map adjacent-faces>> [ intersection-into-face ] with map
[ ] filter ; sift ;
: (face-silhouette) ( face -- faces ) : (face-silhouette) ( face -- faces )
clone dup adjacent-faces>> clone dup adjacent-faces>>
[ backface? [ backface?
[ intersection-into-silhouette-face ] [ 2drop f ] if [ intersection-into-silhouette-face ] [ 2drop f ] if
] with map ] with map
[ ] filter sift
; inline ; inline
: face-silhouette ( face -- faces ) : face-silhouette ( face -- faces )
@ -290,7 +290,7 @@ TUPLE: solid dimension silhouettes
! find-adjacencies ! find-adjacencies
faces>> { } faces>> { }
[ face-silhouette append ] reduce [ face-silhouette append ] reduce
[ ] filter sift
<solid> <solid>
swap >>faces swap >>faces
over dimension>> >>dimension over dimension>> >>dimension
@ -372,7 +372,7 @@ TUPLE: solid dimension silhouettes
ensure-adjacencies ensure-adjacencies
[ color>> ] [ faces>> ] bi [ 3array ] dip [ color>> ] [ faces>> ] bi [ 3array ] dip
[ face-project ] with map [ face-project ] with map
[ ] filter sift
[ ensure-adjacencies ] map [ ensure-adjacencies ] map
; ;