--- layout: main title: API --- # SRFI 117 - Queues based on lists The `(srfi 117)` library defines list queues; mutable ordered collections that can contain any Scheme object. Each list queue is based on an ordinary Scheme list containing the elements of the list queue by maintaining pointers to the first and last pairs of the list. It's cheap to add or remove elements from the front of the list or to add elements to the back, but not to remove elements from the back. See the [SRFI document](http://srfi.schemers.org/srfi-117/srfi-117.html) for more information. ## Constructors [`make-list-queue`](#make-list-queue) [`list-queue`](#list-queue) [`list-queue-copy`](#list-queue-copy) [`list-queue-unfold`](#list-queue-unfold) [`list-queue-unfold-right`](#list-queue-unfold-right) ## Predicates [`list-queue?`](#list-queue-1) [`list-queue-empty?`](#list-queue-empty) ## Accessors [`list-queue-front`](#list-queue-front) [`list-queue-back`](#list-queue-back) [`list-queue-list`](#list-queue-list) [`list-queue-first-last`](#list-queue-first-last) ## Mutators [`list-queue-add-front!`](#list-queue-add-front) [`list-queue-add-back!`](#list-queue-add-back) [`list-queue-remove-front!`](#list-queue-remove-front) [`list-queue-remove-back!`](#list-queue-remove-back) [`list-queue-remove-all!`](#list-queue-remove-all) [`list-queue-set-list!`](#list-queue-set-list) [`list-queue-append`](#list-queue-append) [`list-queue-append!`](#list-queue-append-1) [`list-queue-concatenate`](#list-queue-concatenate) [`list-queue-append`](#list-queue-append) [`list-queue-append!`](#list-queue-append-1) [`list-queue-concatenate`](#list-queue-concatenate) ## Mapping [`list-queue-map`](#list-queue-map) [`list-queue-map!`](#list-queue-map-1) [`list-queue-for-each`](#list-queue-for-each) # make-list-queue # list-queue # list-queue-copy # list-queue-unfold # list-queue-unfold-right # list-queue? # list-queue-empty? # list-queue-front # list-queue-back # list-queue-list # list-queue-first-last # list-queue-add-front! # list-queue-add-back! # list-queue-remove-front! # list-queue-remove-back! # list-queue-remove-all! # list-queue-set-list! # list-queue-append # list-queue-append! # list-queue-concatenate # list-queue-append # list-queue-append! # list-queue-concatenate # list-queue-map # list-queue-map! # list-queue-for-each