Adding lappend
parent
05c84a72e1
commit
e41f1338c6
|
|
@ -63,4 +63,8 @@ IN: lists.tests
|
||||||
|
|
||||||
{ { 3 4 { 5 6 { 7 } } } } [
|
{ { 3 4 { 5 6 { 7 } } } } [
|
||||||
{ 1 2 { 3 4 { 5 } } } seq>cons [ atom? ] [ 2 + ] traverse cons>seq
|
{ 1 2 { 3 4 { 5 } } } seq>cons [ atom? ] [ 2 + ] traverse cons>seq
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
{ { 1 2 3 4 5 6 } } [
|
||||||
|
{ 1 2 3 } seq>list { 4 5 6 } seq>list lappend list>seq
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
! Copyright (C) 2008 Chris Double & James Cash
|
! Copyright (C) 2008 James Cash
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel sequences accessors math arrays vectors classes words locals ;
|
USING: kernel sequences accessors math arrays vectors classes words locals ;
|
||||||
|
|
||||||
|
|
@ -75,6 +75,9 @@ M: object nil? drop f ;
|
||||||
: lreverse ( list -- newlist )
|
: lreverse ( list -- newlist )
|
||||||
nil [ swap cons ] foldl ;
|
nil [ swap cons ] foldl ;
|
||||||
|
|
||||||
|
: lappend ( list1 list2 -- newlist )
|
||||||
|
[ lreverse ] dip [ swap cons ] foldl ;
|
||||||
|
|
||||||
: seq>list ( seq -- list )
|
: seq>list ( seq -- list )
|
||||||
<reversed> nil [ swap cons ] reduce ;
|
<reversed> nil [ swap cons ] reduce ;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue