Реализация функции nconc - Lisp
Формулировка задачи:
_sg
,Catstail
, не могу понять код, помогите, прям по шагам(defun our-nconc (w v) (if w (progn (rplacd (last w) v) w) v))
Решение задачи: «Реализация функции nconc»
textual
Листинг программы
(defun our-nconc (w v) (if w (progn (rplacd (last w) v) w) v))
Объяснение кода листинга программы
В данном коде реализована функция our-nconc, которая является рекурсивной и принимает два аргумента типа w и v.
Алгоритм работы функции следующий:
- Если
wне равноnil(это базовый случай), то выполняются следующие действия:rplacdзаменяет последний элемент спискаwнаv.- Результатом работы функции является
w.
- Если
wравноnil(это конечный случай), то результатом работы функции являетсяv. - В общем случае, когда
wне равноnil, выполняется рекурсивный вызов функцииour-nconcс аргументамиwиv. Таким образом, функцияour-nconcобъединяет два списка в один, при этом списокvдобавляется к спискуw.