Разбиение одного списка на два по длине на Прологе


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

Разбиение одного списка на два по длине на Прологе

Код на Lisp
  1. domains
  2. sp=integer*
  3. predicates
  4. i(sp,integer)
  5. i1(sp,integer,sp,sp)
  6. clauses
  7. i([],0).
  8. i([X|Y],N):-i(Y,N1),N=N1+1.
  9. i1([],Q1,[],[]).
  10. i1([X|Y],0,[],[X|Y]).
  11. i1([X|Y],N,[X|Y1],R2):-N1=N-1,i1(Y,N1,Y1,R2).
  12. goal
  13. i([1,2,3,4,5,6,7],R),write(R),
  14. Q1=trunc(R/2),
  15. i1([1,2,3,4,5,6,7],Q1,R1,R2), write(R1), write(R2).
При использовании обязательна ссылка на http://DMTSoft.ru
up

Комментарии для "Разбиение одного списка на два по длине на Прологе"


Пользователь: ae88xxx
Сообщений: 1
Статус: Незримый
Зарегистрирован:
10 ноября 2008, 6:02
Был:10 ноября 2008, 6:03
ae88xxx
smsup
Дата: 10 ноября 2008, 6:03 Сообщение № 1
sm