Вызов функции n раз acl2
Я не могу понять, как вызвать функцию n раз для использования в другой функции
У меня есть функция
(defun right-shift (l)
(append l '(0)))
И мне нужно написать еще одну функцию, которая должна сместить '(l) n раз
(defun right-shift-n-times (l n)
(natp n)
...)
Я даже не уверен, что правильно запустил эту функцию и не могу понять, как ее вызвать n раз.
1 ответ
Вы должны дать еще немного предыстории своей проблемы. Я думаю, что если вы хотите сдвигать побитовые данные, есть более эффективные способы.
Для решения в стиле домашней работы я бы начал с чего-то вроде этого:
(defun right-shift-n-times (l n)
(if (zerop n)
l
(right-shift-n-times (right-shift l) (1- n))))
но я не очень опытный лиспер.