This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/library/queuep.lgt

94 lines
2.0 KiB
Plaintext
Raw Normal View History

:- protocol(queuep).
:- info([
version is 1.0,
author is 'Paulo Moura',
date is 2000/7/24,
comment is 'Queue protocol.']).
:- public(empty/1).
:- mode(empty(@queue), zero_or_one).
:- info(empty/1, [
comment is 'True if the queue is empty.',
argnames is ['Queue']]).
:- public(head/2).
:- mode(head(+queue, ?term), zero_or_one).
:- info(head/2, [
comment is 'Unifies Head with the first element of the queue.',
argnames is ['Queue', 'Head']]).
:- public(join/3).
:- mode(join(@term, +queue, -queue), zero_or_one).
:- info(join/3, [
comment is 'Adds the new element at the end of the queue.',
argnames is ['Element', 'Queue_in', 'Queue_out']]).
:- public(join_all/3).
:- mode(join_all(+list, +queue, -queue), zero_or_one).
:- info(join_all/3, [
comment is 'Adds the new elements at the end of the queue. The elements are added in the same order that they appear in the list.',
argnames is ['List', 'Queue_in', 'Queue_out']]).
:- public(jump/3).
:- mode(jump(@term, +queue, -queue), zero_or_one).
:- info(jump/3, [
comment is 'Adds the new element at the front of the queue.',
argnames is ['Element', 'Queue_in', 'Queue_out']]).
:- public(jump_all/3).
:- mode(jump_all(+list, +queue, -queue), zero_or_one).
:- info(jump_all/3, [
comment is 'Adds the new elements at the front of the queue. The elements are added in the same order that they appear in the list.',
argnames is ['Element', 'Queue_in', 'Queue_out']]).
:- public(length/2).
:- mode(length(+queue, ?integer), zero_or_one).
:- info(length/2,
[comment is 'Queue length.',
argnames is ['Queue', 'Length']]).
:- public(serve/3).
:- mode(serve(+queue, ?term, -queue), zero_or_one).
:- info(serve/3, [
comment is 'Removes the first element of the queue for service.',
argnames is ['Queue_in', 'Head', 'Queue_out']]).
:- public(as_list/2).
:- mode(as_list(+queue, -list), one).
:- info(as_list/2,
[comment is 'Converts a queue to a list.',
argnames is ['Queue', 'List']]).
:- end_protocol.