math.combinatorics: produce type of sequence in selections.
parent
85acdb2520
commit
b646d1e1b8
|
@ -79,6 +79,8 @@ IN: math.combinatorics.tests
|
||||||
{ 2 1 1 } { 2 1 2 } { 2 2 1 } { 2 2 2 } } ]
|
{ 2 1 1 } { 2 1 2 } { 2 2 1 } { 2 2 2 } } ]
|
||||||
[ { 1 2 } 3 selections ] unit-test
|
[ { 1 2 } 3 selections ] unit-test
|
||||||
|
|
||||||
|
{ { "aa" "ab" "ac" "ba" "bb" "bc" "ca" "cb" "cc" } }
|
||||||
|
[ "abc" 2 selections ] unit-test
|
||||||
|
|
||||||
{ V{ { 1 2 } { 1 3 } } }
|
{ V{ { 1 2 } { 1 3 } } }
|
||||||
[ { 1 2 3 } 2 [ { 1 } head? ] filter-combinations ] unit-test
|
[ { 1 2 3 } 2 [ { 1 } head? ] filter-combinations ] unit-test
|
||||||
|
|
|
@ -189,8 +189,8 @@ INSTANCE: combinations immutable-sequence
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: (selections) ( seq n -- selections )
|
: (selections) ( seq n -- selections )
|
||||||
[ [ 1array ] map dup ] [ 1 - ] bi* [
|
[ dup [ 1sequence ] curry { } map-as dup ] [ 1 - ] bi* [
|
||||||
cartesian-product concat [ { } concat-as ] map
|
cartesian-product concat [ concat ] map
|
||||||
] with times ;
|
] with times ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
Loading…
Reference in New Issue