Дан список целых чисел. Определить функцию, возвращающую его копию - Lisp
Формулировка задачи:
Решение задачи: «Дан список целых чисел. Определить функцию, возвращающую его копию»
(defun task (lst) (cond ((null lst) nil) ((minusp (car lst)) (cons (* 2 (car lst)) (task (cdr lst)))) (t (cons (* 3 (car lst)) (task (cdr lst)))))) (task '(3 -2 4 -1 -5 -9 2 6)) ==> (9 -4 12 -2 -10 -18 6 18)
Объяснение кода листинга программы
В коде определена функция task, которая получает в качестве аргумента lst список целых чисел. Если lst равен nil, то функция возвращает nil. Если car lst меньше нуля, то в первую очередь возвращается результат умножения car lst на 2, а затем вызывается функция task, передав в качестве аргумента cdr lst. Если car lst больше или равен нулю, то в первую очередь возвращается результат умножения car lst на 3, а затем вызывается функция task, передав в качестве аргумента cdr lst. Значение переменной lst — это список '(3 -2 4 -1 -5 -9 2 6). Значение переменной task — это функция с номером 1. Значение переменной car lst — это число 3. Значение переменной cdr lst — это список '-2 4 -1 -5 -9 2 6. Значение переменной minusp — это функция с номером 2. Значение переменной cons — это функция с номером 3. Значение переменной * — это функция с номером 4. Значение переменной nil — это список nil. Значение переменной t — это логическое значение true. Значение переменной 9 - это число 9. Значение переменной -4 - это число -4. Значение переменной 12 - это число 12. Значение переменной -2 - это число -2. Значение переменной -10 - это число -10. Значение переменной -18 - это число -18. Значение переменной 6 - это число 6. Значение переменной 18 - это число 18. В результате выполнения функции task со списком '(3 -2 4 -1 -5 -9 2 6) в качестве аргумента, возвращается список (9 -4 12 -2 -10 -18 6 18).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д