2- 7_Функциональное программирование (Функциональное программирование кр2 Второе контрольное задание Вариант 7)
.docМинистерство образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Заочный факультет
(дистанционная форма обучения)
Кафедра автоматизированных систем управления (АСУ)
Функциональное програмирование
КОНТРОЛЬНАЯ РАБОТА №2
Шинкарев Денис Юрьевич
(Фамилия Имя Отчество)
15311292
(шифр)
662200 Россия, Красноярский край, г. Назарово,
ул.Фабричная д.5 кв.4
(почтовый адрес)
Дата выполнения работы 3.02.2008г.
Дата проверки:
Оценка:
Подпись преподавателя:
Функциональное программирование
Второе контрольное задание
Вариант 7
-
Определите функцию (f n), n кратное 3, вычисляющую сумму: 1*2*3+4*5*6+...+(n-2)*(n-1)*n.
(defun F (N) (if (< N 3) 0 (+ (* (- N 2) (- N 1) N) (F (- N 3)))))
-
Определите функцию (f s), которая в одноуровневом списке чисел s представляет все отрицательные элементы в начало списка, например, (f '(4 -8 6 -9 -7)) -> (-8 -9 -7 4 6).
(defun F (S) (if S ((lambda (elem result) (cond ((null result) (cons elem result)) ((minusp elem) (cons elem result)) ((plusp (car result)) (cons elem result)) (T (cons (car result) (F (cons elem (cdr result))))))) (car S) (F (cdr S)))))
-
Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым.
(defun F (S) (if S ((lambda (elem result) (cons (if (atom elem) (- elem) (F elem)) result)) (car S) (F (cdr S)))))