Я на самом деле не могу понять ваш вопрос, но если вопрос:.. «Помощь меня сортировать список в общем lisp "тогда:
1)` (setq o1 (20 30 15)) является допустимым выражением lisp и (20 30 15) является списком, но он не цитируется, поэтому интерпретатор попытается оценить выражение. И правило оценки - «Первый элемент в выражении - это функция», поэтому интерпретатор попытается оценить функцию с именем «20» и провалится. Вы должны написать следующее:
(setq o1 '(20 30 15))
1') Обычно лучше использовать setf
вместо setq
(особенно, если вы не хотите, чтобы знать разницу). А также лучше определить переменную, прежде чем устанавливать для нее значение. Так что лучше, чтобы написать что-то вроде этого:
(defparameter o1 '()) ;creating o1 with empty list
(setf o1 '(20 30 15))
1 «») Вы должны назвать вам переменные и функции с понятными именами. И если это глобальная переменная, отметьте ее звездочками. Например
(defparameter *students-scores* '())
(setf *students-scores* '(20 30 15))
2) В общей LISP list
является встроенной функцией, которая создает список из его аргументов. Даже если вы находитесь в своем собственном пакете во время выполнения этого кода (пакет по умолчанию заблокирован, поэтому вы не сможете переопределить функцию list
), довольно странно переопределить такую функцию, как list
, поэтому выберите другой имя для вашей функции
(defun sort-integer-list (lst)
(sort lst #'<))
3) У вас есть круглые скобки в вашем коде.
Большое спасибо за ваше время и объяснив мне. Я не понимаю, как я могу отсортировать первый элемент первого подписок с первым из второго подписок. (i отредактировал первый пост) –
@StereoView Извините, но я все еще не понимаю, чего вы хотите.) Пожалуйста, объясните вопрос в более удобочитаемой форме. P.S. Я не знаю слова «самое жаркое», и словарь ничего мне не дал. – JustAnotherCurious