]> gitweb.factorcode.org Git - factor.git/commitdiff
add a combinator to spider
authorDoug Coleman <erg@jobim.local>
Thu, 9 Apr 2009 20:29:38 +0000 (15:29 -0500)
committerDoug Coleman <erg@jobim.local>
Thu, 9 Apr 2009 20:29:38 +0000 (15:29 -0500)
extra/spider/unique-deque/unique-deque.factor

index ad46abdad35d3bfe61daaa593b2b86fdaaeef18d..b26797f8d51dabb58f20d401edf39b1d5b327439 100644 (file)
@@ -29,3 +29,9 @@ TUPLE: unique-deque assoc deque ;
 : pop-url ( unique-deque -- todo-url ) deque>> pop-front ;
 
 : peek-url ( unique-deque -- todo-url ) deque>> peek-front ;
+
+: slurp-deque-when ( deque quot1 quot2: ( value -- ) -- )
+    pick deque-empty? [ 3drop ] [
+        [ [ pop-front dup ] 2dip slip [ t ] compose [ drop f ] if ]
+        [ roll [ slurp-deque-when ] [ 3drop ] if ] 3bi
+    ] if ; inline recursive