]> gitweb.factorcode.org Git - factor.git/commitdiff
Remove some duplication in lists
authorDoug Coleman <doug.coleman@gmail.com>
Fri, 14 Oct 2011 19:08:48 +0000 (12:08 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Fri, 14 Oct 2011 19:08:48 +0000 (12:08 -0700)
basis/lists/lists.factor

index 1e009df25c81b6dda4193b9c78aea344dbb5b573..87f69d16e18674f5a213f749069652f009891b9f 100644 (file)
@@ -36,15 +36,15 @@ M: object nil? drop f ;
 
 : 1list? ( list -- ? ) { [ nil? not ] [ cdr nil? ] } 1&& ; inline
 
-: 2list ( a b -- cons ) nil cons cons ; inline
+: 2list ( a b -- cons ) 1list cons ; inline
 
-: 3list ( a b c -- cons ) nil cons cons cons ; inline
+: 3list ( a b c -- cons ) 2list cons ; inline
 
 : cadr ( list -- elt ) cdr car ; inline
  
-: 2car ( list -- car caar ) [ car ] [ cdr car ] bi ; inline
+: 2car ( list -- car caar ) [ car ] [ cadr ] bi ; inline
  
-: 3car ( list -- car cadr caddr ) [ car ] [ cdr car ] [ cdr cdr car ] tri ; inline
+: 3car ( list -- car cadr caddr ) [ car ] [ cadr ] [ cdr cadr ] tri ; inline
 
 : lnth ( n list -- elt ) swap [ cdr ] times car ; inline
 
@@ -74,10 +74,10 @@ PRIVATE>
     0 [ drop 1 + ] foldl ;
 
 : lreverse ( list -- newlist )    
-    nil [ swap cons ] foldl ;
+    nil [ swons ] foldl ;
 
 : lappend ( list1 list2 -- newlist )    
-    [ lreverse ] dip [ swap cons ] foldl ;
+    [ lreverse ] dip [ swons ] foldl ;
 
 : lcut ( list index -- before after )
     [ nil ] dip