[ Reference Manual | Alphabetic Index ]

# library(queues)

define queue operations [more]

## Predicates

> empty_queue(Queue)
>   tests whether the queue is empty
> head_queue(Queue, Head)
>   unifies Head with the first element of the queue
> join_queue(Element, OldQueue, NewQueue)
>   adds the new element at the end of the queue
> jump_queue(Element, OldQueue, NewQueue)
>   adds the new element at the front of the list
> length_queue(Queue, Length)
>   counts the number of elements currently in the queue
> list_join_queue(List, OldQueue, NewQueue)
>   adds the new elements at the end of the queue
> list_jump_queue(List, OldQueue, NewQueue)
>   adds all the elements of List at the front of the queue
> list_to_queue(List, Queue)
>   creates a new queue with the same elements as List
> make_queue(Queue)
>   creates a new empty queue
> queue_to_list(Queue, List)
>   creates a new list with the same elements as Queue
> serve_queue(OldQueue, Head, NewQueue)
>   removes the first element of the queue for service

## Description

In this package, a queue is represented as a term Front-Back, where Front is a list and Back is a tail of that list, and is normally a variable. join_queue will only work when the Back is a variable, the other routines will accept any tail. The elements of the queue are the list difference, that is, all the elements starting at Front and stopping at Back. Examples:

    	[a,b,c,d,e|Z]-Z	    has elements a,b,c,d,e
    	[a,b,c,d,e]-[d,e]   has elements a,b,c
    	Z-Z		    has no elements
    	[1,2,3]-[1,2,3]	    has no elements

## About

- Author: R.A.O'Keefe
- Copyright © This file is in the public domain
- Date: Friday November 18th, 1983, 8:09:31 pm

Generated from queues.eci on 2022-09-03 14:26