Сортировка списка минусов по второму объекту - PullRequest
0 голосов
/ 25 мая 2018

Мне нужно отсортировать список элементов cons по элементу cdr.Например:

(aaa.4 bbb.2 ccc.6 ddd.9 eee.3) => (bbb.2 eee.3 aaa.4 ccc.6 ddd.9)   

Помогите мне, пожалуйста, я только начинаю изучать Лисп.

1 Ответ

0 голосов
/ 25 мая 2018

Это (aaa.4 bbb.2 ccc.6 ddd.9 eee.3) не список слов, а список символов с именами "aaa.4", "bbb.2" и т. Д.

То, что подразумевает ваш текст, выглядит примерно так:

((aaa . 4)
 (bbb . 2)
 (ccc . 6)
 (ddd . 9)
 (eee . 3))

Вы можете отсортировать список по некоторому ключу с аргументом key на sort:

(sort list #'< :key #'cdr)

Sort может деструктивно изменить список ввода для создания отсортированного списка вывода.Чтобы защититься от этого, скопируйте сначала:

(sort (copy-list list) #'< :key #'cdr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...