Я сейчас пытаюсь написать программу, которая берет два списка чисел, которые, как предполагается, уже находятся в порядке возрастания, и рекурсивно объединяет их.
Пока у меня есть:
(defun MERGESORT (NLIST1 NLIST2)
(cond ((null NLIST1)NLIST2)
((null NLIST2)NLIST1)
((<= (car NLIST1) (car NLIST2)) (cons(car NLIST1)(car Nlist2))
(MERGESORT(cdr NLIST1)(cdr NLIST2)))
(t(cons(car NLIST2)(car NLIST1))
(MERGESORT (cdr NLIST1)(cdr NLIST2)))))
Когда я записываю функцию на консоль с
(write (MERGESORT '(1 1 2 4 7) '(1 2 2 3 4 6 9)))
Все, что мне кажется, выводит (6 9)
Я хочу получить (1 1 1 2 2 2 3 4 4 67 9).
Возможно, я немного переосмыслил условия, и я знаю, что это просто вопрос сравнения первых двух элементов, сначала вывод меньшего из двух элементов, а затем повторение, но сейчас я нахожусь вконтрольно-пропускной пункт.Как бы вы, ребята, сделали эту программу?