parent
eb2a0c611b
commit
0856bb5711
|
@ -7,6 +7,10 @@ IN: lists.tests
|
|||
{ 1 2 3 4 5 } sequence>list [ 2 + ] lmap list>array
|
||||
] unit-test
|
||||
|
||||
{ 2 { 3 4 5 6 7 } } [
|
||||
2 { 1 2 3 4 5 } sequence>list [ dupd + ] lmap list>array
|
||||
] unit-test
|
||||
|
||||
{ { 3 4 5 6 } } [
|
||||
T{ cons f 1
|
||||
T{ cons f 2
|
||||
|
|
|
@ -58,9 +58,6 @@ PRIVATE>
|
|||
: leach ( ... list quot: ( ... elt -- ... ) -- ... )
|
||||
over nil? [ 2drop ] [ (leach) leach ] if ; inline recursive
|
||||
|
||||
: lmap ( ... list quot: ( ... elt -- ... newelt ) -- ... result )
|
||||
over nil? [ drop ] [ (leach) lmap cons ] if ; inline recursive
|
||||
|
||||
: foldl ( ... list identity quot: ( ... prev elt -- ... next ) -- ... result )
|
||||
swapd leach ; inline
|
||||
|
||||
|
@ -73,10 +70,13 @@ PRIVATE>
|
|||
: llength ( list -- n )
|
||||
0 [ drop 1 + ] foldl ;
|
||||
|
||||
: lreverse ( list -- newlist )
|
||||
: lreverse ( list -- newlist )
|
||||
nil [ swons ] foldl ;
|
||||
|
||||
: lappend ( list1 list2 -- newlist )
|
||||
: lmap ( ... list quot: ( ... elt -- ... newelt ) -- ... result )
|
||||
[ nil ] dip [ swapd dip cons ] curry foldl lreverse ; inline
|
||||
|
||||
: lappend ( list1 list2 -- newlist )
|
||||
[ lreverse ] dip [ swons ] foldl ;
|
||||
|
||||
: lcut ( list index -- before after )
|
||||
|
|
Loading…
Reference in New Issue