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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -76,6 +73,9 @@ PRIVATE>
 | 
			
		|||
: lreverse ( list -- newlist )
 | 
			
		||||
    nil [ swons ] foldl ;
 | 
			
		||||
 | 
			
		||||
: lmap ( ... list quot: ( ... elt -- ... newelt ) -- ... result )
 | 
			
		||||
    [ nil ] dip [ swapd dip cons ] curry foldl lreverse ; inline
 | 
			
		||||
 | 
			
		||||
: lappend ( list1 list2 -- newlist )
 | 
			
		||||
    [ lreverse ] dip [ swons ] foldl ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue