Числовi функцiї
(CONS (- 1 (CAR lst)) (CHANGE01 (CDR lst))) )
Задача 2. Змiнним a та b присвоєнi числа. Записати функцiю в одному рядку (не визначати цю функцiю), в результатi якої змiннi обмiнюються своїми значеннями. Використовувати допомiжнi змiннi забороняється.
$ (SETQ a 2 b 3)// a = 2, b = 3
$ (SETQ a (+ a b) b (- a b) a (- a b))// a = 3, b = 2
Задача 3. Вiдомо, що lst - список, який мiстить неспадну послiдовнiсть чисел. Функцiя (NUM lst) повинна обчислювати кiлькiсть рiзних чисел у ньому.
(DEFUN NUM (lst)
((NULL (CDR lst)) 1)
((/= (CAR lst) (CADR lst)) (+ 1 (NUM (CDR lst))))
(NUM (CDR lst)) )
Задача 4. Списки lst1 та lst2 мiстять строго зростаючi послiдовностi чисел. Знайти кiлькiсть спiльних елементiв у цих масивах. Часова оцiнка алгоритму повинна дорiвнювати O(K+L), де K та L - довжини спискiв lst1 та lst2 вiдповiдно.
(DEFUN COMELEMENT (lst1 lst2)
((OR (NULL lst1) (NULL lst2)) 0)
((< (CAR lst1) (CAR lst2)) (COMELEMENT (CDR lst1) lst2))
((> (CAR lst1) (CAR lst2)) (COMELEMENT lst1 (CDR lst2)))
(+ 1 (COMELEMENT (CDR lst1) (CDR lst2))) )
В файлi irratnal.lsp мiститься великий набiр iррацiональних та трансцендентних функцiй. Аргументи тригонометричних функцiй задаються в радiанах.
1. (EXP x) експонента e^x
2. (EXPT x y) степiнь x^y
3. (LOG x y) логарифм logyx. Якщо y не задано, основа вважається рiвною e.
4. (LN x) натуральний логарифм
5. (SQRT x) квадратний корiнь
6. (ISQRT x) цiла частина з квадратного кореня
7. (SIN x) та (ASIN x) сiнус та арксiнус
8. (COS x) та (ACOS x) косинус та арккосинус