Sujet : Re: Sort letters
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.schemeDate : 06. Jul 2025, 00:28:41
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <104ccf7$1okm2$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Actually, you can use STRING< for characters, symbols and strings.
(defun sortit (diddel dudel)
(loop for elem in (append diddel dudel)
if (numberp elem) collect elem into numbers
else collect elem into alfas
finally (return (values (sort numbers #'<) (sort alfas #'string<)))))
(sortit '(4 p 2 5) '(m 6 a v e))
=>
(2 4 5 6)
(A E M P V)
Gauche Scheme
(define (sortit . lists)
(receive (n a) (partition number? (concatenate lists))
(values
(sort n)
(sort-by a x->string))))
(sortit '(4 p 2 5) '(m 6 a v e) '(0 z 9) '(b 3))
===>
(0 2 3 4 5 6 9)
(a b e m p v z)