Moving extra/lisp/conses to extra/lists
parent
25fa024898
commit
cfc3381cab
|
@ -1 +0,0 @@
|
|||
Cons cell helper functions for extra/lisp
|
|
@ -1,8 +1,8 @@
|
|||
! Copyright (C) 2008 James Cash
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: tools.test lisp.conses math ;
|
||||
USING: tools.test lists math ;
|
||||
|
||||
IN: lisp.conses.tests
|
||||
IN: lists.tests
|
||||
|
||||
{ { 3 4 5 6 } } [
|
||||
T{ cons f 1
|
||||
|
@ -10,4 +10,12 @@ IN: lisp.conses.tests
|
|||
T{ cons f 3
|
||||
T{ cons f 4
|
||||
T{ cons f f f } } } } } [ 2 + ] map-cons
|
||||
] unit-test
|
||||
|
||||
{ 10 } [
|
||||
T{ cons f 1
|
||||
T{ cons f 2
|
||||
T{ cons f 3
|
||||
T{ cons f 4
|
||||
T{ cons f f f } } } } } 0 [ + ] reduce-cons
|
||||
] unit-test
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel sequences accessors ;
|
||||
|
||||
IN: lisp.conses
|
||||
IN: lists
|
||||
|
||||
TUPLE: cons car cdr ;
|
||||
: cons \ cons new ;
|
||||
|
@ -26,6 +26,9 @@ TUPLE: cons car cdr ;
|
|||
: map-cons ( cons quot -- seq )
|
||||
[ { } clone ] 2dip (map-cons) ;
|
||||
|
||||
: cons>seq ( cons -- array )
|
||||
[ ] map-cons ;
|
||||
|
||||
: reduce-cons ( cons identity quot -- result )
|
||||
pick null? [ drop nip ]
|
||||
[ [ uncons ] 2dip swapd [ call ] keep reduce-cons ] if ;
|
|
@ -0,0 +1 @@
|
|||
Implementation of lisp-style linked lists
|
|
@ -1,4 +1,3 @@
|
|||
lisp
|
||||
cons
|
||||
lists
|
||||
sequences
|
Loading…
Reference in New Issue