Range expansion: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 2,777:
swap over 1 - 1 swap slice tonum
rot rot len rot swap over - swap 1 + swap slice tonum
nip 2 tolist for append endfor
else
append drop
endif
endfor
r
pstack</lang>
 
A bit more understandable
<lang Phixmonti>0 tolist var r
 
def append
r swap 0 put var r
enddef
 
def getSeparator /# s -- s n #/
dup 32 1 set
"-" find nip
enddef
 
def first /# s n -- s n #/
swap over 1 - 1
swap slice tonum
enddef
 
def last /# s n -- s n #/
swap len rot swap over - swap 1 +
swap slice tonum
enddef
 
"-6,-3--1,3-5,7-11,14,15,17-20" "," " " subst split
 
len for
get dup tonum dup
nan == if
drop
getSeparator
first
rot rot swap
last
nip 2 tolist for append endfor
else
672

edits