Rosetta Code: Sort disjoint sublist

Liste des GroupesRevenir à cl lisp 
Sujet : Rosetta Code: Sort disjoint sublist
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp
Date : 18. Aug 2024, 07:37:32
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v9s1af$29f45$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Given a list of values and a set of integer indices into that
value list, the task is to sort the values at the given
indices, but preserving the values at indices outside the set
of those to be sorted.
 
Make your example work with the following list of values and
set of indices:
   values: [7, 6, 5, 4, 3, 2, 1, 0]
   indices: {6, 1, 7}
 
Where the correct result would be:
   [7, 0, 5, 4, 3, 2, 1, 6].

newLISP

(set 'values '(7 6 5 4 3 2 1 0))
(set 'positions '(6 1 7))
(set 'sorted-vals (sort (map (fn(n) (values n)) positions)))
(dolist (p (sort positions))
  (setf (values p) (pop sorted-vals)))
values

(7 0 5 4 3 2 1 6)



Date Sujet#  Auteur
18 Aug 24 o Rosetta Code: Sort disjoint sublist1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal