>Мне нужно написть данные функции:
>1. Функция которая получает список и возвращает его в обратном порядке.
>
>2. Функция которая получает список чисел и возвращает его сумму.
>3. Функция которая получает два списка и возвращает элементы находящиеся в
>обеих списках.
>4. Функция которая получает список и возвращает упорядоченный список с атомами
>в начале и числами в конце.
>5. Функция которая получает элемент и список подсписков и отвечает находится
>ли данный элемент в списке.
>6. Функция которая получает аргумент и возвращает количество списков в нем
>с помощью MAPCAR.
>7. Функция которая получает список и возвращает данный список но без
>дупликатов.
>8. Функция которая получает два списка и объединяет их в один
>список.
>9. Функция которая получает два *отсортированных* списка и возвращает элементы находящиеся
>в обеих списках.
>10. Функция которая получает список и элемент и возвращает глубину элемента в
>списке.
>Спасибо за помощь!
>Колян Превед товарисч!
Тяжелая у тебя жизнь, учись пока я жив:
1:
(defun myReverse-aux (lst l-res)
(if (null lst) l-res
(myReverse-aux (cdr lst) (cons (car lst) l-res))
)
)
2:
(defun sum (lst)
(if (null lst) 'Not_defined
(sum-aux lst 0)
)
)
(defun sum-aux (lst res)
(if (null lst) res
(sum-aux (cdr lst) (+ res (car lst)))
)
)
3:
(defun dupl (l1 l2)
(cond
((null l1) '())
((myMember (car l1) (cdr l1)) (dupl (cdr l1) l2))
((myMember (car l1) l2) (cons (car l1) (dupl (cdr l1) l2)))
(t (dupl (cdr l1) l2))
)
)
4:
(defun sep (lst)
(cond
((null lst) '())
((numberp (car lst)) (append (sep (cdr lst)) (list (car lst))))
(t (cons (car lst) (sep (cdr lst))))
)
)
5:
(defun myMember (e l)
(cond
((null l) nil)
((equal (car l) e) t)
(t (myMember e (cdr l)))
)
)
6:
(defun NumOfLists (item)
(cond
((not (listp item)) 0)
((null item) 1)
(t (+ 1 (apply #'+ (mapcar #'NumOfLists item))))
)
)
7:
(defun rq (l)
(cond
((null l) '())
((myMember (car l) (cdr l)) (rq (cdr l)))
(t (cons (car l) (rq (cdr l))))
)
)
8:
(defun union (l1 l2)
(rq (append l1 l2))
)
(defun rq (l)
(cond
((null l) '())
((myMember (car l) (cdr l)) (rq (cdr l)))
(t (cons (car l) (rq (cdr l))))
)
)
9:
(defun inter (l1 l2)
(cond
((or (null l1) (null l2)) '())
((< (car l1) (car l2)) (inter (cdr l1) l2))
((> (car l1) (car l2)) (inter l1 (cdr l2)))
((= (car l1) (car l2)) (cons (car l1) (inter (cdr l1) (cdr l2))))
)
)
10:
(defun depth (lst e)
(cond
((equal lst e) 0)
((null lst) nil)
((listp lst) (if (check e (car lst)) (+ 1 (depth (car lst) e)) (depth2 (cdr lst) e)))
)
)
(defun depth2 (lst e)
(if (null lst) nil
(if (check e (car lst)) (+ 1 (depth (car lst) e)) (depth2 (cdr lst) e))
)
)
(defun check (e lst)
(cond
((equal e lst) t)
((null lst) nil)
((listp lst) (if (check e (car lst)) t (check2 e (cdr lst))))
)
)
(defun check2 (e lst)
(if (null lst) nil
(if (check e (car lst)) t (check2 e (cdr lst)))
)
)
Я надеюсь что поможет но если есть ошибки то я невиноват!
Жека