(de rangeextract (Lst) (glue "," (make (while Lst (let (N (pop 'Lst) M N) (while (= (inc M) (car Lst)) (setq M (pop 'Lst)) ) (cond ((= N M) (link N)) ((= (inc N) M) (link N M)) (T (link (list N '- M))) ) ) ) ) ) )