Розробка програми із застосовуючими функціоналами

Страницы работы

Содержание работы

Лабораторна робота №5

Застосування функціоналів.

Ціль роботи: засвоїти розробку програм з застосовуючими функціоналами.

Задача: написати програму, виконуючу необхідні дії. В програмі використати функціонали EVAL, FUNCALL, APPLY.

Приклади:

1. Построїти список результатів виконання функцій із заданого списку S з параметрами X Y:

(defun p(S X Y )(COND ((NULL S) NIL)

  (T(CONS (FUNCALL (CAR S) X Y)(P (CDR S) X Y)))    ) )

2. Функція зі списку функцій L, з параметрами X Y, яка приймає при даному значенни аргументів задане значення: А.

(DEFUN CC(L X Y А)(COND ((NULL L ) NIL)

((= А  (CAR (P L X Y )) ) (CAR  L  ))

(T( CC (CDR L) X Y А)) )).

Зі списка  функцій відібрати в окремий список ті, результати

виконання котрих при заданому аргументі розташовані за убиванням.

(setq l (list 'f1 'f2 'f3 'f4 'f5 'f6 'f7))

(defun f1(x) (+ x 4) )

(defun f2(x) (+ x 5) )

(defun f3(x) (+ x 2) )

(defun f4(x) (+ x 1) )

(defun f5(x) (+ x 6) )

(defun f6(x) (+ x 5) )

(defun f7(x) (+ x 7) )

(defun ff(L y z) (cond ( (NULL L)     nil)

( (<= (funcall (car L) y) z)

       (cons (funcall (car L) y) (ff (cdr L) y (funcall (car L) y))))

( t   (ff (cdr L) y z) )) )

(defun s (x) (cons (funcall (car L) x)( ff (cdr l) x (funcall (car L) x))) )

Результати роботи програми:

> (s 1)

(5 3 2)

Похожие материалы

Информация о работе