]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/spider/unique-deque/unique-deque.factor
factor: trim using lists
[factor.git] / extra / spider / unique-deque / unique-deque.factor
index ad46abdad35d3bfe61daaa593b2b86fdaaeef18d..f099da6aace1bf4c53d9ed01f07e5dd775679dab 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors assocs deques dlists kernel spider ;
+USING: accessors assocs deques dlists kernel ;
 IN: spider.unique-deque
 
 TUPLE: todo-url url depth ;
@@ -29,3 +29,10 @@ 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: ( value -- ) quot2: ( value -- ) -- )
+    deque deque-empty? [
+        deque pop-front dup quot1 call
+        [ quot2 call t ] [ drop f ] if
+        [ deque quot1 quot2 slurp-deque-when ] when
+    ] unless ; inline recursive