! 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 ;
: 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
+:: 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