RosettaCodeData/Task/Range-expansion/Bracmat/range-expansion.bracmat
2023-07-01 13:44:08 -04:00

15 lines
342 B
Text

( expandRanges
= a b L
. @( !arg
: (#(?a:?b)|#?a "-" #?b)
(:?L|"," [%(expandRanges$!sjt:?L))
)
& whl
' ( (!L:&!b|(!b,!L))
: ?L
& -1+!b:~<!a:?b
)
& !L
|
)
& out$(str$(expandRanges$"-6,-3--1,3-5,7-11,14,15,17-20"))