Вставка элемента в список перед указанными на Прологе


Добавил:DMT
Дата создания:6 января 2008, 14:08
Дата обновления:6 января 2008, 14:08
Просмотров:4130 последний позавчера, 1:15
Комментариев: 0

Вставка элемента в список перед указанными.

Код на Lisp
  1. domains
  2. int=integer
  3. str=string
  4. strp=str*
  5.  
  6. predicates
  7. insert(str,strp,strp,strp).
  8. /* вставка элемента в список перед указанными
  9. параметры:
  10. 1- вставляемый элемент
  11. 2- список последовательности перед
  12. которой происходит вставка
  13. 3- исходный список
  14. 4- измененный список*/
  15.  
  16. check(strp,strp).
  17. /* проверка первых элементов списка2 на равенство
  18. с элементами списка1
  19. параметры:
  20. - список 1
  21. - список 2 */
  22. clauses
  23. insert(X,_,[],[]):- !.
  24. insert(X,[Head|Y],[Head|Z],[X,Head|T]):-
  25. check(Y,Z),insert(X,[Head|Y],Z,T),!.
  26. insert(X,Y,[Head|Z],[Head|N]):- insert(X,Y,Z,N).
  27. check([],Z):- !.
  28. check([Head|Y],[Head|Z]):- check(Y,Z).
При использовании обязательна ссылка на http://DMTSoft.ru
up