Anonymous user
Range extraction: Difference between revisions
Emacs Lisp: Improve formatting
(Added solution for Action!) |
(Emacs Lisp: Improve formatting) |
||
Line 1,707:
=={{header|Emacs Lisp}}==
{{libheader|Gnus}}
<lang Lisp>(require 'gnus-range)
(defun rangext (lst)
(mapconcat (lambda (item)
(if (consp item)
(if (= (+ 1 (car item)
(format "%d,%d" (car item) (cdr item)
(format "%d-%d" (car item) (cdr item)
(format "%d" item)))
(gnus-compress-sequence lst)
","))
15 16 17 18 19 20 21 22 23 24
25 27 28 29 30 31 32 33 35 36
37 38 39
;; => "0-2,4,6-8,11,12,14-25,27-33,35-39"</lang>▼
Vanilla:
<lang Lisp>(setq max-lisp-eval-depth 10000)▼
▲0-2,4,6-8,11,12,14-25,27-33,35-39
▲(setq max-lisp-eval-depth 10000)
(defun ab (a ls)
(if ls (if (= (+ a 1) (car ls)
(abc a (car ls) (cdr ls)
(format "%d,%s" a (ab (car ls) (cdr ls)
(format "%d" a)
(defun abc (a b ls)
(if ls (if (= (+ b 1) (car ls)
(abcd a (car ls) (cdr ls)
(format "%d,%d,%s" a b (ab (car ls) (cdr ls)
(format "%d,%d" a b)
(defun abcd (a c ls)
(if ls (if (= (+ c 1) (car ls)
(abcd a (car ls) (cdr ls)
(format "%d-%d,%s" a c (ab (car ls) (cdr ls)
(format "%d-%d" a c)
(defun rangext (ls)
(if ls (ab (car ls) (cdr ls)
15 16 17 18 19 20 21 22 23 24
25 27 28 29 30 31 32 33 35 36
37 38 39
;; => "0-2,4,6-8,11,12,14-25,27-33,35-39"</lang>▼
▲0-2,4,6-8,11,12,14-25,27-33,35-39
=={{header|Erlang}}==
|