See this document in CiteSeerX!

Purely Functional Random-Access Lists (1995)  (Make Corrections)  (17 citations)
Chris Okasaki
Functional Programming Languages and Computer Architecture



  Home/Search   Context   Related

 
View or download:
columbia.edu/~cdo/fpca95.ps
Cached:  PS.gz  PS  PDF   Image  Update  Help

From:  columbia.edu/~cdo/papers (more)
(Enter author homepages)

Rate this article: (best)
  Comment on this article  
(Enter summary)

Abstract: We present a new data structure, called a random-access list, that supports array lookup and update operations in O(log n) time, while simultaneously providing O(1) time list operations (cons, head, tail). A closer analysis of the array operations improves the bound to O(minfi; log ng) in the worst case and O(log i) in the expected case, where i is the index of the desired element. Empirical evidence suggests that this data structure should be quite efficient in practice. 1 Introduction... (Update)

Context of citations to this paper:   More

...cs.york.ac.uk Abstract. Despite a lot of recent interest in purely functional data structures, for example [Ada93, Oka95, BO96, Oka96, OB97, Erw97], few have been benchmarked. Of these, even fewer have their performance qualified by how they are used. But how a data structure...

...trees [11] for instance, support all operations in Q(log n) time. An unrivalled data structure is the skew binary random access list [15, 16], which provides logarithmic array operations and constant time list operations. A common characteristic of the tree based...

Cited by:   More
Non-Blocking Synchronization and Object-Oriented Operating System .. - Ananian   (Correct)
Efficient Data Structures in a Lazy Functional Language - Holters (2003)   (Correct)
Bootstrapping One-sided Flexible Arrays - Hinze (2002)   (Correct)

Active bibliography (related documents):   More   All
0.9:   Sequence Implementations in Haskell - Borges (1997)   (Correct)
0.9:   A Probabilistic Approach to the Problem of Automatic Selection .. - Chuang, Hwang (1996)   (Correct)
0.7:   A Randomized Implementation of Multiple Functional Arrays - Chuang (1994)   (Correct)

Similar documents based on text:   More   All
0.1:   Optimal Purely Functional Priority Queues - Brodal (1996)   (Correct)
0.0:   Catenable Double-Ended Queues - Okasaki (1997)   (Correct)
0.0:   Simple Confluently Persistent Catenable Lists (Extended.. - Kaplan, Okasaki, Tarjan (1998)   (Correct)

Related documents from co-citation:   More   All
9:   Purely Functional Data Structures - Okasaki - 1998
6:   An applicative random-access stack (context) - Myers - 1983
6:   Simple and efficient purely functional queues and deques - Okasaki - 1995

BibTeX entry:   (Update)

Chris Okasaki. Purely functional random-access lists. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pages 86--95, 1995. http://citeseer.ist.psu.edu/okasaki95purely.html   More

@inproceedings{ okasaki95purely,
    author = "Chris Okasaki",
    title = "Purely Functional Random-Access Lists",
    booktitle = "Functional Programming Languages and Computer Architecture",
    pages = "86-95",
    year = "1995",
    url = "citeseer.ist.psu.edu/okasaki95purely.html" }
Citations (may not include all citations):
1074   The Definition of Standard ML (context) - Milner, Tofte et al. - 1990
362   ML for the Working Programmer (context) - Paulson - 1991
244   Imperative functional programming - Jones, Wadler - 1993
184   Linear types can change the world - Wadler - 1990
173   A real-time garbage collector based on the lifetimes of obje.. - Lieberman, Hewitt - 1983
101   A Discipline of Programming (context) - Dijksta - 1976
71   A data structure for manipulating priority queues (context) - Vuillemin - 1978
66   Views: A way for pattern matching to cohabit with data abstr.. - Wadler - 1987
61   Detecting global variables in denotational specifications (context) - Schmidt - 1985
33   Making data structures persistent (context) - Driscoll, Sarnak et al. - 1989
33   Fully persistent arrays (context) - Dietz - 1989
27   Update analysis and the efficient implementation of function.. (context) - Bloss - 1989
21   Real-time queue operations in pure Lisp (context) - Hood, Melville - 1981
20   Persistent lists with catenation via recursive slow-down (context) - Kaplan, Tarjan - 1995
19   Simple and efficient purely functional queues and deques - Okasaki - 1995
19   Planar graph decomposition and all pairs shortest paths (context) - Frederickson - 1991
18   Efficient applicative data types (context) - Myers - 1984
17   Order-of-evaluation analysis for destructive updates in stri.. - Sastry, Clinger et al. - 1993
17   River routing every which way (context) - Cole, Siegel - 1984
17   Information Processing Letters (context) - Gajewska, Tarjan et al. - 1986
16   Localized search in sorted lists (context) - Kosaraju - 1981
16   Abstract value constructors (context) - Aitken, Reppy - 1992
16   Pattern matching with abstract data types (context) - Burton, Cameron - 1993
15   Shallow binding in Lisp - Baker - 1978
13   On pointers versus addresses (context) - Ben-Amram, Galil - 1992
13   Unrolling lists - Shao, Reppy et al. - 1994
12   An applicative random-access stack (context) - Myers - 1983
11   An efficiency comparison of some representations of purely f.. (context) - Aasa, Holmstrom et al. - 1988
10   Shallow binding makes functional arrays fast - Baker - 1991
9   How to make destructive updates less destructive - Odersky - 1991
8   A logarithmic implementation of flexible arrays (context) - Hoogerwoord - 1992
7   The efficient implementation of veryhigh -level programming .. (context) - Hood - 1982
7   and purely functional programming (context) - Chuang, Goldberg et al. - 1993
6   Computing external farthest neighbors for a simple polygon (context) - Agarwal, Agarwol et al. - 1991
4   A randomized implementation of multiple functional arrays (context) - Chuang - 1994
1   AVL-trees for localized search (context) - Tsakalidis - 1985



The graph only includes citing articles where the year of publication is known.


Documents on the same site (http://www.cs.columbia.edu/~cdo/papers.html):   More
Safe-for-Space Threads in Standard ML - Biagioni, Cline, Lee, Okasaki.. (1998)   (Correct)
Amortization, Lazy Evaluation, and Persistence: Lists with.. - Okasaki (1995)   (Correct)
Functional Data Structures - Okasaki (1996)   (Correct)

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC