#### Filter Results:

- Full text PDF available (23)

#### Publication Year

1992

2011

- This year (0)
- Last 5 years (0)
- Last 10 years (1)

#### Publication Type

#### Co-author

#### Journals and Conferences

#### Key Phrases

Learn More

- Chris Okasaki
- 1999

When a C programmer needs an efficient data structure for a particular problem , he or she can often simply look one up in any of a number of good textbooks or handbooks. Unfortunately, programmers in functional languages such as Standard ML or Haskell do not have this luxury. Although some data structures designed for imperative languages such as C can be… (More)

- Chris Okasaki
- J. Funct. Program.
- 1995

We present purely functional implementations of queues and double-ended queues (deques) requiring only O(1) time per operation in the worst case. Our algorithms are considerably simpler than previous designs with the same bounds. The inspiration for our approach is the incremental behavior of certain functions on lazy lists. This paper presents another… (More)

- Chris Okasaki
- FOCS
- 1995

Amortization has been underutilized in the design of persistent data structures, largely because traditional accounting schemes break down in a persistent setting. Such schemes depend on saving \credits" for future use, but a persistent data structure may have multiple \futures", each competing for the same credits. We describe how lazy evaluation can often… (More)

- Chris Okasaki
- FPCA
- 1995

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… (More)

- Chris Okasaki
- ICFP
- 1996

Traditional techniques for designing and analyzing amortized data structures in an imperative setting are of limited use in a functional setting because they apply only to single-threaded data structures, yet functional data structures can be non-single-threaded. In earlier work, we showed how lazy evaluation supports functional amortized data structures… (More)

- Chris Okasaki
- Advanced Functional Programming
- 1996

- Chris Okasaki
- ICFP
- 1999

Square matrices serve as an interesting case study in functional programming. Common representations, such as lists of lists, are both inefficient---at least for access to individual elements---and error-prone, because the compiler cannot enforce "squareness". Switching to a typical balanced-tree representation solves the first problem, but not the second.… (More)

Graphs are ubiquitous, finding applications in domains ranging from software engineering to computational biology. While graph theory and graph algorithms are some of the oldest, most studied fields in computer science, the problem of visualizing graphs is comparatively young. This problem, known as graph drawing, is that of transforming combinatorial… (More)

- Chris Okasaki
- ICFP
- 2000

Every programmer has blind spots. Breadth-first numbering is an interesting toy problem that exposes a blind spot common to many---perhaps most---functional programmers.

- Chris Okasaki
- J. Funct. Program.
- 1999