#lang scribble/doc @(require scribble/manual (planet cce/scheme:4:1/planet) (only-in (for-label scheme) for sequence?) (for-label (this-package-in main))) @title[#:tag "top"]{Purely Functional Random-Access Lists} @author+email["David Van Horn" "dvanhorn@ccs.neu.edu"] @table-of-contents[] This is an implementation of purely functional random-access lists that enjoy O(1) @scheme[first] and @scheme[rest] operations and O(log n) @scheme[list-ref] and @scheme[list-set] operations. Random-access lists implement the sequence interface, so @scheme[(list? x)] implies @scheme[(sequence? x)], and elements of a list may be extracted with any of the @scheme[for] syntactic forms. This implementation is based on Okasaki, FPCA '95. @include-section["bindings.scrbl"] @include-section["contract.scrbl"] @include-section["run-tests.scrbl"] @include-section["run-benchmarks.scrbl"]