]> gitweb.factorcode.org Git - factor.git/commitdiff
added lzip to lazy-lists library
authormatthew.willis <matthew.willis@mac.com>
Thu, 21 Sep 2006 23:45:06 +0000 (23:45 +0000)
committermatthew.willis <matthew.willis@mac.com>
Thu, 21 Sep 2006 23:45:06 +0000 (23:45 +0000)
contrib/lazy-lists/lists.factor

index b495c3f65413e078378904ba4e4d519cfcb360ba..d1086b920460176d33c05593f3f4be4277a3274e 100644 (file)
@@ -247,3 +247,19 @@ M: lazy-from-by cdr ( lazy-from-by -- cdr )
 
 M: lazy-from-by nil? ( lazy-from-by -- bool )
   drop f ;
+  
+TUPLE: lazy-zip list1 list2 ;
+
+: lzip ( list1 list2 -- lazy-zip )
+    over nil? over nil? or 
+    [ 2drop nil ] [ <lazy-zip> ] if ;
+
+M: lazy-zip car ( lazy-zip -- car )
+    [ lazy-zip-list1 car ] keep lazy-zip-list2 car 2array ;
+   
+M: lazy-zip cdr ( lazy-zip -- cdr )
+    [ lazy-zip-list1 cdr ] keep lazy-zip-list2 cdr lzip ;
+
+M: lazy-zip nil? ( lazy-zip -- bool )
+    drop f ;
+    
\ No newline at end of file