• DocumentCode
    3398602
  • Title

    Amortization, lazy evaluation, and persistence: lists with catenation via lazy linking

  • Author

    Okasaki, Chris

  • Author_Institution
    Sch. of Comput. Sci., Carnegie Mellon Univ., Pittsburgh, PA, USA
  • fYear
    1995
  • fDate
    23-25 Oct 1995
  • Firstpage
    646
  • Lastpage
    654
  • Abstract
    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 remedy this problem, yielding persistent data structures with good amortized efficiency. In fact, such data structures can be implemented purely functionally in any functional language supporting lazy evaluation. As can example of this technique, we present a purely functional (and therefore persistent) implementation of lists that simultaneously support catenation and all other usual list primitives in constant amortized time. This data structure is much simpler than the only existing data structure with comparable bounds, the recently discovered catenable lists of Kaplan and Tarjan, which support all operations in constant worst-case time
  • Keywords
    data structures; list processing; amortization; catenation; lazy evaluation; lazy linking; persistence; persistent data structures; Computer science; Contracts; Costs; Data analysis; Data structures; Delay effects; Electrostatic discharge; Functional programming; History; Joining processes;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Foundations of Computer Science, 1995. Proceedings., 36th Annual Symposium on
  • Conference_Location
    Milwaukee, WI
  • ISSN
    0272-5428
  • Print_ISBN
    0-8186-7183-1
  • Type

    conf

  • DOI
    10.1109/SFCS.1995.492666
  • Filename
    492666