Moving extra/lisp/conses to extra/lists

db4
James Cash 2008-06-03 01:27:06 -04:00
parent 25fa024898
commit cfc3381cab
7 changed files with 15 additions and 5 deletions

View File

@ -1 +0,0 @@
Cons cell helper functions for extra/lisp

View File

@ -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
@ -11,3 +11,11 @@ IN: lisp.conses.tests
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

View File

@ -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 ;

1
extra/lists/summary.txt Normal file
View File

@ -0,0 +1 @@
Implementation of lisp-style linked lists

View File

@ -1,4 +1,3 @@
lisp
cons
lists
sequences