Logtalk 2.30.1 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1903 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -3,14 +3,12 @@
|
||||
implements(queuep),
|
||||
extends(compound)).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
author is 'Paulo Moura',
|
||||
date is 2000/7/24,
|
||||
comment is 'Queue predicates implemented using difference lists.']).
|
||||
|
||||
|
||||
as_list(Queue-Back, List) :-
|
||||
Queue == Back ->
|
||||
List = []
|
||||
@@ -19,70 +17,53 @@
|
||||
Queue = [Head| Rest],
|
||||
as_list(Rest-Back, Tail).
|
||||
|
||||
|
||||
empty(Front-Back) :-
|
||||
Front == Back.
|
||||
|
||||
|
||||
head(Front-Back, Head) :-
|
||||
Front \== Back,
|
||||
Front = [Head| _].
|
||||
|
||||
|
||||
join(Element, Front-[Element| Back], Front-Back).
|
||||
|
||||
|
||||
join_all([], Queue, Queue).
|
||||
|
||||
join_all([Head| Tail], Queue1, Queue3) :-
|
||||
join(Head, Queue1, Queue2),
|
||||
join_all(Tail, Queue2, Queue3).
|
||||
|
||||
|
||||
jump(Element, Front-Back, [Element| Front]-Back).
|
||||
|
||||
|
||||
jump_all([], Queue, Queue).
|
||||
|
||||
jump_all([Head| Tail], Queue1, Queue3) :-
|
||||
jump(Head, Queue1, Queue2),
|
||||
jump_all(Tail, Queue2, Queue3).
|
||||
|
||||
|
||||
length(Front-Back, Length) :-
|
||||
length(Front, Back, 0, N),
|
||||
Length = N.
|
||||
|
||||
|
||||
length(Front, Back, N, N) :-
|
||||
Front == Back, !.
|
||||
|
||||
length([_|Front], Back, K, N) :-
|
||||
L is K+1,
|
||||
length(Front, Back, L, N).
|
||||
|
||||
|
||||
new(Back-Back).
|
||||
|
||||
|
||||
serve(OldFront-Back, Head, NewFront-Back) :-
|
||||
OldFront \== Back,
|
||||
OldFront = [Head| NewFront].
|
||||
|
||||
|
||||
valid(Queue) :-
|
||||
nonvar(Queue),
|
||||
valid2(Queue).
|
||||
|
||||
|
||||
valid2(Queue-Back) :-
|
||||
Queue == Back,
|
||||
!.
|
||||
|
||||
valid2(Queue-Back) :-
|
||||
nonvar(Queue),
|
||||
Queue = [_| Tail],
|
||||
valid2(Tail-Back).
|
||||
|
||||
|
||||
:- end_object.
|
||||
|
Reference in New Issue
Block a user