RosettaCodeData/Task/Range-extraction/Zkl/range-extraction-1.zkl

11 lines
285 B
Text
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
fcn range(ns){
fcn(w){
if (w.atEnd) return(Void.Stop);
a:=b:=w.next(); n:=0;
while(b+1 == (c:=w.peekN(n))){ n+=1; b=c }
if(n>1){do(n){w.next()}; return("%d-%d".fmt(a,b)); }
a
} :
(0).pump(*,List,_.fp(ns.walker().tweak(Void,Void))).concat(",");
}