31 lines
923 B
Text
31 lines
923 B
Text
[ stack ] is comb.stack
|
|
[ stack ] is comb.items
|
|
[ stack ] is comb.required
|
|
[ stack ] is comb.result
|
|
|
|
[ 1 - comb.items put
|
|
1+ comb.required put
|
|
0 comb.stack put
|
|
[] comb.result put
|
|
[ comb.required share
|
|
comb.stack size = if
|
|
[ comb.result take
|
|
comb.stack behead
|
|
drop nested join
|
|
comb.result put ]
|
|
comb.stack take
|
|
dup comb.items share
|
|
= iff
|
|
[ drop
|
|
comb.stack size 1 > iff
|
|
[ 1 comb.stack tally ] ]
|
|
else
|
|
[ dup comb.stack put
|
|
1+ comb.stack put ]
|
|
comb.stack size 1 = until ]
|
|
comb.items release
|
|
comb.required release
|
|
comb.result take ] is comb ( n n --> )
|
|
|
|
3 5 comb
|
|
witheach [ witheach [ echo sp ] cr ]
|