Служба спасения студентов
Служба спасения для студентов

СибГУТИ Лабораторная 2 Функциональное и логическое программирование скачать бесплатно

Скачать бесплатно
Задание
Удалите из списка L перед каждым вхождением X один элемент, если такой
имеется и отличен от X.
Например, для языка CLISP при L=(1 2 1 1 3), X=1 функция должна вернуть (1 1 1 3).
Текст программы (lsp)
(defun delone(lst x &optional (o nil))
 (cond ((null lst) (list o))
       ((and (not (eq o nil)) (or (/= (car lst) x) (eq o x))) (cons o (delone lst x)))
   (t (delone (cdr lst) x (car lst)))))
(defun start()
    (princ "write list: ")
    (setq lst (read))
(princ "write x: ")
    (setq x (read))
    (delone lst x))
(print (start))
Текст программы (pl)
start():-
    write('Введите список L: '),
    read(L),
    write('введите X:'),
    read(X),
    delone(L,X,R),
write(R).
delone([],_,[]).
delone([H,X|L],X,[X|L1]):-
    H \= X,!,delone(L, X, L1).
delone([H|L],X,[H|L1]):-
    delone(L,X,L1).
Результаты работы программы (lsp)
Результаты работы программы (pl)
Заявка на расчет