diff --git a/basis/lists/lists-tests.factor b/basis/lists/lists-tests.factor index 866ac0f597..d9b6fbd5d9 100644 --- a/basis/lists/lists-tests.factor +++ b/basis/lists/lists-tests.factor @@ -48,3 +48,7 @@ IN: lists.tests ] unit-test { { 1 } { 2 } } [ { 1 2 } sequence>list 1 lcut [ list>array ] bi@ ] unit-test + +{ { { 1 } { { 2 } } } } [ + 1 nil cons 2 nil cons nil cons nil cons cons deeplist>array +] unit-test diff --git a/basis/lists/lists.factor b/basis/lists/lists.factor index 1b106b0002..0efb182864 100644 --- a/basis/lists/lists.factor +++ b/basis/lists/lists.factor @@ -93,6 +93,9 @@ PRIVATE> : list>array ( list -- array ) [ ] lmap>array ; +: deeplist>array ( list -- array ) + [ dup list? [ deeplist>array ] when ] lmap>array ; + INSTANCE: cons-state list INSTANCE: +nil+ list