skip to main content
Skip header Section
Purely functional data structuresJanuary 1998
Publisher:
  • Cambridge University Press
  • 40 W. 20 St. New York, NY
  • United States
ISBN:978-0-521-63124-2
Published:01 January 1998
Pages:
220
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Aksenov V, Brown T, Fedorov A and Kokorin I Unexpected Scaling in Path Copying Trees Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming, (438-440)
  2. ACM
    Pedersen J and Conradt J AEStream: Accelerated event-based processing with coroutines Proceedings of the 2023 Annual Neuro-Inspired Computational Elements Conference, (86-91)
  3. ACM
    Dhulipala L, Blelloch G, Gu Y and Sun Y PaC-trees: supporting parallel and compressed purely-functional collections Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (108-121)
  4. ACM
    Soundarapandian V, Kamath A, Nagar K and Sivaramakrishnan K Certified mergeable replicated data types Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (332-347)
  5. ACM
    Lorenzen A and Leijen D (2022). Reference counting with frame limited reuse, Proceedings of the ACM on Programming Languages, 6:ICFP, (357-380), Online publication date: 29-Aug-2022.
  6. ACM
    Moine A, Charguéraud A and Pottier F Specification and verification of a transient stack Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs, (82-99)
  7. ACM
    Nelson-Slivon J, Hassan A and Palmieri R Bundling linked data structures for linearizable range queries Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (368-384)
  8. ACM
    Niu Y, Sterling J, Grodin H and Harper R (2022). A cost-aware logical framework, Proceedings of the ACM on Programming Languages, 6:POPL, (1-31), Online publication date: 16-Jan-2022.
  9. Papadias S, Kaoudi Z, Quiané-Ruiz J and Markl V (2022). Space-efficient random walks on streaming graphs, Proceedings of the VLDB Endowment, 16:2, (356-368), Online publication date: 1-Oct-2022.
  10. ACM
    Nipkow T Teaching algorithms and data structures with a proof assistant (invited talk) Proceedings of the 10th ACM SIGPLAN International Conference on Certified Programs and Proofs, (1-3)
  11. ACM
    Rajani V, Gaboardi M, Garg D and Hoffmann J (2021). A unifying type-theory for higher-order (amortized) cost analysis, Proceedings of the ACM on Programming Languages, 5:POPL, (1-28), Online publication date: 4-Jan-2021.
  12. ACM
    Li Y, Xia L and Weirich S (2021). Reasoning about the garden of forking paths, Proceedings of the ACM on Programming Languages, 5:ICFP, (1-28), Online publication date: 22-Aug-2021.
  13. ACM
    Zhou Z, Dickerson R, Delaware B and Jagannathan S (2021). Data-driven abductive inference of library specifications, Proceedings of the ACM on Programming Languages, 5:OOPSLA, (1-29), Online publication date: 20-Oct-2021.
  14. ACM
    Winblad K, Sagonas K and Jonsson B (2021). Lock-free Contention Adapting Search Trees, ACM Transactions on Parallel Computing, 8:2, (1-38), Online publication date: 30-Jun-2021.
  15. ACM
    Iannetta P, Gonnord L and Radanne G Compiling pattern matching to in-place modifications Proceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, (123-129)
  16. Agrawal A, Li Y, Xue J and Janardan R (2020). The most-likely skyline problem for stochastic points, Computational Geometry: Theory and Applications, 88:C, Online publication date: 1-Jun-2020.
  17. ACM
    Haria S, Hill M and Swift M MOD Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, (775-788)
  18. ACM
    Ma T, Zhang M, Chen K, Song Z, Wu Y and Qian X AsymNVM Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, (757-773)
  19. ACM
    Handley M, Vazou N and Hutton G (2019). Liquidate your assets: reasoning about resource usage in liquid Haskell, Proceedings of the ACM on Programming Languages, 4:POPL, (1-27), Online publication date: 1-Jan-2020.
  20. ACM
    Hillerström D, Lindley S and Longley J (2020). Effects for efficiency: asymptotic speedup with first-class control, Proceedings of the ACM on Programming Languages, 4:ICFP, (1-29), Online publication date: 2-Aug-2020.
  21. ACM
    Cutler J, Licata D and Danner N (2020). Denotational recurrence extraction for amortized analysis, Proceedings of the ACM on Programming Languages, 4:ICFP, (1-29), Online publication date: 2-Aug-2020.
  22. ACM
    Claessen K Finger trees explained anew, and slightly simplified (functional pearl) Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell, (31-38)
  23. ACM
    Van Roy P, Haridi S, Schulte C and Smolka G (2020). A history of the Oz multiparadigm language, Proceedings of the ACM on Programming Languages, 4:HOPL, (1-56), Online publication date: 14-Jun-2020.
  24. ACM
    Hickey R (2020). A history of Clojure, Proceedings of the ACM on Programming Languages, 4:HOPL, (1-46), Online publication date: 14-Jun-2020.
  25. Moser G and Schneckenreither M (2020). Automated amortised resource analysis for term rewrite systems, Science of Computer Programming, 185:C, Online publication date: 1-Jan-2020.
  26. ACM
    Moreira S, Vasconcelos P and Florido M Resource Analysis for Lazy Evaluation with Polynomial Potential Proceedings of the 32nd Symposium on Implementation and Application of Functional Languages, (104-114)
  27. Nipkow T and Brinkop H (2019). Amortized Complexity Verified, Journal of Automated Reasoning, 62:3, (367-391), Online publication date: 1-Mar-2019.
  28. ACM
    Ben-David N, Blelloch G, Sun Y and Wei Y Multiversion Concurrency with Bounded Delay and Precise Garbage Collection The 31st ACM Symposium on Parallelism in Algorithms and Architectures, (241-252)
  29. ACM
    Yallop J and White L (2019). Lambda: the ultimate sublanguage (experience report), Proceedings of the ACM on Programming Languages, 3:ICFP, (1-17), Online publication date: 26-Jul-2019.
  30. ACM
    Kaki G, Priya S, Sivaramakrishnan K and Jagannathan S (2019). Mergeable replicated data types, Proceedings of the ACM on Programming Languages, 3:OOPSLA, (1-29), Online publication date: 10-Oct-2019.
  31. ACM
    Hamza J, Voirol N and Kunčak V (2019). System FR: formalized foundations for the stainless verifier, Proceedings of the ACM on Programming Languages, 3:OOPSLA, (1-30), Online publication date: 10-Oct-2019.
  32. ACM
    Hackett J and Hutton G (2019). Call-by-need is clairvoyant call-by-value, Proceedings of the ACM on Programming Languages, 3:ICFP, (1-23), Online publication date: 26-Jul-2019.
  33. ACM
    Dhulipala L, Blelloch G and Shun J Low-latency graph streaming using compressed purely-functional trees Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, (918-934)
  34. ACM
    Newton J and Verna D (2019). A Theoretical and Numerical Analysis of the Worst-Case Size of Reduced Ordered Binary Decision Diagrams, ACM Transactions on Computational Logic, 20:1, (1-36), Online publication date: 31-Jan-2019.
  35. ACM
    Spector-Zabusky A, Breitner J, Rizkallah C and Weirich S Total Haskell is reasonable Coq Proceedings of the 7th ACM SIGPLAN International Conference on Certified Programs and Proofs, (14-27)
  36. ACM
    Foner K, Zhang H and Lampropoulos L (2018). Keep your laziness in check, Proceedings of the ACM on Programming Languages, 2:ICFP, (1-30), Online publication date: 30-Jul-2018.
  37. ACM
    Breitner J, Spector-Zabusky A, Li Y, Rizkallah C, Wiegley J and Weirich S (2018). Ready, set, verify! applying hs-to-coq to real-world Haskell code (experience report), Proceedings of the ACM on Programming Languages, 2:ICFP, (1-16), Online publication date: 30-Jul-2018.
  38. ACM
    Lampropoulos L, Spector-Zabusky A and Foner K Ode on a random urn (functional pearl) Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell, (26-37)
  39. ACM
    Zhang X and Guo P DS.js Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology, (691-702)
  40. ACM
    Lampropoulos L, Spector-Zabusky A and Foner K (2017). Ode on a random urn (functional pearl), ACM SIGPLAN Notices, 52:10, (26-37), Online publication date: 31-Oct-2017.
  41. Jost S, Vasconcelos P, Florido M and Hammond K (2017). Type-Based Cost Analysis for Lazy Functional Languages, Journal of Automated Reasoning, 59:1, (87-120), Online publication date: 1-Jun-2017.
  42. ACM
    Madhavan R, Kulal S and Kuncak V (2017). Contract-based resource verification for higher-order functions with memoization, ACM SIGPLAN Notices, 52:1, (330-343), Online publication date: 11-May-2017.
  43. ACM
    Wang P, Wang D and Chlipala A (2017). TiML: a functional language for practical complexity analysis with invariants, Proceedings of the ACM on Programming Languages, 1:OOPSLA, (1-26), Online publication date: 12-Oct-2017.
  44. ACM
    Madhavan R, Kulal S and Kuncak V Contract-based resource verification for higher-order functions with memoization Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, (330-343)
  45. ACM
    Laurent N and Mens K Taming context-sensitive languages with principled stateful parsing Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, (15-27)
  46. ACM
    Prokopec A SnapQueue: lock-free queue with constant time snapshots Proceedings of the 6th ACM SIGPLAN Symposium on Scala, (1-12)
  47. ACM
    Ploeg A and Kiselyov O (2014). Reflection without remorse, ACM SIGPLAN Notices, 49:12, (133-144), Online publication date: 11-May-2015.
  48. ACM
    Castagna G, Nguyen K, Xu Z and Abate P (2015). Polymorphic Functions with Set-Theoretic Types, ACM SIGPLAN Notices, 50:1, (289-302), Online publication date: 11-May-2015.
  49. ACM
    Jaskelioff M and Rivas E Functional pearl: a smart view on datatypes Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, (355-361)
  50. ACM
    Jaskelioff M and Rivas E (2015). Functional pearl: a smart view on datatypes, ACM SIGPLAN Notices, 50:9, (355-361), Online publication date: 18-Dec-2015.
  51. ACM
    Stucki N, Rompf T, Ureche V and Bagwell P RRB vector: a practical general purpose immutable sequence Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, (342-354)
  52. ACM
    Stucki N, Rompf T, Ureche V and Bagwell P (2015). RRB vector: a practical general purpose immutable sequence, ACM SIGPLAN Notices, 50:9, (342-354), Online publication date: 18-Dec-2015.
  53. ACM
    Castagna G, Nguyen K, Xu Z and Abate P Polymorphic Functions with Set-Theoretic Types Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (289-302)
  54. ACM
    Chang S and Felleisen M Profiling for laziness Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (349-360)
  55. ACM
    Chang S and Felleisen M (2014). Profiling for laziness, ACM SIGPLAN Notices, 49:1, (349-360), Online publication date: 13-Jan-2014.
  56. ACM
    Kaki G and Jagannathan S A relational framework for higher-order shape analysis Proceedings of the 19th ACM SIGPLAN international conference on Functional programming, (311-324)
  57. ACM
    Ploeg A and Kiselyov O Reflection without remorse Proceedings of the 2014 ACM SIGPLAN symposium on Haskell, (133-144)
  58. ACM
    Williams T, Dagand P and Rémy D Ornaments in practice Proceedings of the 10th ACM SIGPLAN workshop on Generic programming, (15-24)
  59. ACM
    Kaki G and Jagannathan S (2014). A relational framework for higher-order shape analysis, ACM SIGPLAN Notices, 49:9, (311-324), Online publication date: 26-Nov-2014.
  60. ACM
    Steinert B, Cassou D and Hirschfeld R (2012). CoExist, ACM SIGPLAN Notices, 48:2, (107-118), Online publication date: 23-Jan-2013.
  61. Hofmann M and Rodriguez D Automatic type inference for amortised heap-space analysis Proceedings of the 22nd European conference on Programming Languages and Systems, (593-613)
  62. Chang S Laziness by need Proceedings of the 22nd European conference on Programming Languages and Systems, (81-100)
  63. Demaine E, Panchekha P, Wilson D and Yang E Blame trees Proceedings of the 13th international conference on Algorithms and Data Structures, (280-290)
  64. Antoy S and Hanus M Contracts and specifications for functional logic programming Proceedings of the 14th international conference on Practical Aspects of Declarative Languages, (33-47)
  65. ACM
    Myreen M and Owens S Proof-producing synthesis of ML from higher-order logic Proceedings of the 17th ACM SIGPLAN international conference on Functional programming, (115-126)
  66. ACM
    Simões H, Vasconcelos P, Florido M, Jost S and Hammond K Automatic amortised analysis of dynamic memory allocation for lazy functional programs Proceedings of the 17th ACM SIGPLAN international conference on Functional programming, (165-176)
  67. ACM
    Steinert B, Cassou D and Hirschfeld R CoExist Proceedings of the 8th symposium on Dynamic languages, (107-118)
  68. ACM
    Myreen M and Owens S (2012). Proof-producing synthesis of ML from higher-order logic, ACM SIGPLAN Notices, 47:9, (115-126), Online publication date: 15-Oct-2012.
  69. ACM
    Simões H, Vasconcelos P, Florido M, Jost S and Hammond K (2012). Automatic amortised analysis of dynamic memory allocation for lazy functional programs, ACM SIGPLAN Notices, 47:9, (165-176), Online publication date: 15-Oct-2012.
  70. ACM
    Russo C (2012). Recursive structures for standard ML, ACM SIGPLAN Notices, 47:4a, (48-59), Online publication date: 18-Jun-2012.
  71. ACM
    Gill A and Farmer A (2011). Deriving an efficient FPGA implementation of a low density parity check forward error corrector, ACM SIGPLAN Notices, 46:9, (209-220), Online publication date: 18-Sep-2011.
  72. ACM
    Gill A and Farmer A Deriving an efficient FPGA implementation of a low density parity check forward error corrector Proceedings of the 16th ACM SIGPLAN international conference on Functional programming, (209-220)
  73. ACM
    Im H, Nakata K, Garrigue J and Park S A syntactic type system for recursive modules Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications, (993-1012)
  74. ACM
    Gorlick M, Strasser K, Baquero A and Taylor R CREST Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (193-194)
  75. ACM
    Im H, Nakata K, Garrigue J and Park S (2011). A syntactic type system for recursive modules, ACM SIGPLAN Notices, 46:10, (993-1012), Online publication date: 18-Oct-2011.
  76. Lesniak M Thread-Safe priority queues in haskell based on skiplists Proceedings of the 12th international conference on Trends in Functional Programming, (114-129)
  77. Henglein F Dynamic symbolic computation for domain-specific language implementation Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation, (4-24)
  78. Koopman P, Achten P and Plasmeijer R Model based testing with logical properties versus state machines Proceedings of the 23rd international conference on Implementation and Application of Functional Languages, (116-133)
  79. Matiello P and Melo A PiStache Proceedings of the 14th Brazilian Symposium on Formal Methods, Foundations and Applications - Volume 7021, (76-91)
  80. ACM
    Suter P, Dotta M and Kuncak V Decision procedures for algebraic data types with abstractions Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (199-210)
  81. ACM
    Jost S, Hammond K, Loidl H and Hofmann M Static determination of quantitative resource usage for higher-order programs Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (223-236)
  82. ACM
    Henglein F Optimizing relational algebra operations using generic equivalence discriminators and lazy products Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation, (73-82)
  83. ACM
    Suter P, Dotta M and Kuncak V (2010). Decision procedures for algebraic data types with abstractions, ACM SIGPLAN Notices, 45:1, (199-210), Online publication date: 2-Jan-2010.
  84. ACM
    Jost S, Hammond K, Loidl H and Hofmann M (2010). Static determination of quantitative resource usage for higher-order programs, ACM SIGPLAN Notices, 45:1, (223-236), Online publication date: 2-Jan-2010.
  85. ACM
    Antoy S and Hanus M (2010). Functional logic programming, Communications of the ACM, 53:4, (74-85), Online publication date: 1-Apr-2010.
  86. Elmasry A, Jensen C and Katajainen J Strictly-Regular number system and data structures Proceedings of the 12th Scandinavian conference on Algorithm Theory, (26-37)
  87. Hinze R Generic programming with adjunctions Proceedings of the 2010 international spring school conference on Generic and Indexed Programming, (47-129)
  88. Elmasry A, Jensen C and Katajainen J The magic of a number system Proceedings of the 5th international conference on Fun with algorithms, (156-165)
  89. Claessen K, Smallbone N and Hughes J QuickSpec Proceedings of the 4th international conference on Tests and proofs, (6-21)
  90. Demaine E, Langerman S and Price E (2010). Confluently Persistent Tries for Efficient Version Control, Algorithmica, 57:3, (462-483), Online publication date: 1-Jul-2010.
  91. Johann P and Ghani N (2009). A principled approach to programming with nested types in Haskell, Higher-Order and Symbolic Computation, 22:2, (155-189), Online publication date: 1-Jun-2009.
  92. Hofmann M and Rodriguez D Efficient type-checking for amortised heap-space analysis Proceedings of the 23rd CSL international conference and 18th EACSL Annual conference on Computer science logic, (317-331)
  93. ACM
    Danielsson N Lightweight semiformal time complexity analysis for purely functional data structures Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (133-144)
  94. ACM
    Danielsson N (2008). Lightweight semiformal time complexity analysis for purely functional data structures, ACM SIGPLAN Notices, 43:1, (133-144), Online publication date: 14-Jan-2008.
  95. ACM
    Nogueira P and Moreno-Navarro J Bialgebra views Proceedings of the ACM SIGPLAN workshop on Generic programming, (61-73)
  96. Comini M, Damiani F and Vrech S On Polymorphic Recursion, Type Systems, and Abstract Interpretation Proceedings of the 15th international symposium on Static Analysis, (144-158)
  97. Demaine E, Langerman S and Price E Confluently Persistent Tries for Efficient Version Control Proceedings of the 11th Scandinavian workshop on Algorithm Theory, (160-172)
  98. Lobachev O and Loogen R Towards an Implementation of a Computer Algebra System in a Functional Language Proceedings of the 9th AISC international conference, the 15th Calculemas symposium, and the 7th international MKM conference on Intelligent Computer Mathematics, (141-154)
  99. Hirzel M, Nystrom N, Bloom B and Vitek J Matchete Proceedings of the 10th international conference on Practical aspects of declarative languages, (150-166)
  100. Conchon S and Filliâtre J Semi-persistent data structures Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems, (322-336)
  101. Shkaravska O, van Eekelen M and Tamalet A Collected size semantics for functional programs over lists Proceedings of the 20th international conference on Implementation and application of functional languages, (118-137)
  102. ACM
    Beshers C, Fox D and Shaw J Experience report Proceedings of the 12th ACM SIGPLAN international conference on Functional programming, (213-218)
  103. ACM
    Dreyer D A type system for recursive modules Proceedings of the 12th ACM SIGPLAN international conference on Functional programming, (289-302)
  104. ACM
    Beshers C, Fox D and Shaw J (2007). Experience report, ACM SIGPLAN Notices, 42:9, (213-218), Online publication date: 1-Oct-2007.
  105. ACM
    Dreyer D (2007). A type system for recursive modules, ACM SIGPLAN Notices, 42:9, (289-302), Online publication date: 1-Oct-2007.
  106. ACM
    Conchon S and Filliâtre J A persistent union-find data structure Proceedings of the 2007 workshop on Workshop on ML, (37-46)
  107. ACM
    Hudak P, Hughes J, Peyton Jones S and Wadler P A history of Haskell Proceedings of the third ACM SIGPLAN conference on History of programming languages, (12-1-12-55)
  108. Lev-Ami T, Sagiv M, Immerman N and Reps T Constructing specialized shape analyses for uniform change Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation, (215-233)
  109. Chitil O and Huch F Monadic, prompt lazy assertions in Haskell Proceedings of the 5th Asian conference on Programming languages and systems, (38-53)
  110. ACM
    Dunfield J Refined typechecking with Stardust Proceedings of the 2007 workshop on Programming languages meets program verification, (21-32)
  111. ACM
    Kahan S and Konecny P "MAMA!" Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming, (178-186)
  112. ACM
    Schrijvers T and Bruynooghe M Polymorphic algebraic data type reconstruction Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming, (85-96)
  113. ACM
    Owens S and Flatt M From structures and functors to modules and units Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming, (87-98)
  114. ACM
    Filliâtre J Backtracking iterators Proceedings of the 2006 workshop on ML, (55-62)
  115. ACM
    Owens S and Flatt M (2006). From structures and functors to modules and units, ACM SIGPLAN Notices, 41:9, (87-98), Online publication date: 16-Sep-2006.
  116. ACM
    Abrahamson K Parameterized objects and inducements to explore functional programming Proceedings of the 44th annual Southeast regional conference, (770-771)
  117. ACM
    Gamboa R and Cowles J Implementing a cost-aware evaluator for ACL2 expressions Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications, (71-80)
  118. Schmidt A and Jensen C Efficient maintenance of ephemeral data Proceedings of the 11th international conference on Database Systems for Advanced Applications, (141-155)
  119. Elmasry A, Jensen C and Katajainen J Two-Tier relaxed heaps Proceedings of the 17th international conference on Algorithms and Computation, (308-317)
  120. ACM
    Dreyer D Recursive type generativity Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, (41-53)
  121. ACM
    Dreyer D (2005). Recursive type generativity, ACM SIGPLAN Notices, 40:9, (41-53), Online publication date: 12-Sep-2005.
  122. Lagogiannis G, Panagis Y, Sioutas S and Tsakalidis A A survey of persistent data structures Proceedings of the 9th WSEAS International Conference on Computers, (1-6)
  123. Sereni D and Jones N Termination analysis of higher-order functional programs Proceedings of the Third Asian conference on Programming Languages and Systems, (281-297)
  124. Harrison W A simple semantics for polymorphic recursion Proceedings of the Third Asian conference on Programming Languages and Systems, (37-51)
  125. ACM
    Dreyer D A type system for well-founded recursion Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (293-305)
  126. ACM
    Dreyer D (2004). A type system for well-founded recursion, ACM SIGPLAN Notices, 39:1, (293-305), Online publication date: 1-Jan-2004.
  127. ACM
    Lämmel R and Jones S Scrap your boilerplate Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation, (26-37)
  128. ACM
    Lämmel R and Jones S (2003). Scrap your boilerplate, ACM SIGPLAN Notices, 38:3, (26-37), Online publication date: 18-Mar-2003.
  129. Oury N Observational equivalence and program extraction in the Coq proof assistant Proceedings of the 6th international conference on Typed lambda calculi and applications, (271-285)
  130. ACM
    Hinze R Bootstrapping one-sided flexible arrays Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, (2-13)
  131. ACM
    Hinze R (2002). Bootstrapping one-sided flexible arrays, ACM SIGPLAN Notices, 37:9, (2-13), Online publication date: 17-Sep-2002.
  132. Setzer A Java as a functional programming language Proceedings of the 2002 international conference on Types for proofs and programs, (279-298)
  133. Van Arkel D, Van Groningen J and Smetsers S Fusion in practice Proceedings of the 14th international conference on Implementation of functional languages, (51-67)
  134. ACM
    Russo C Recursive structures for standard ML Proceedings of the sixth ACM SIGPLAN international conference on Functional programming, (50-61)
  135. ACM
    Hinze R A simple implementation technique for priority search queues Proceedings of the sixth ACM SIGPLAN international conference on Functional programming, (110-121)
  136. ACM
    Russo C (2001). Recursive structures for standard ML, ACM SIGPLAN Notices, 36:10, (50-61), Online publication date: 1-Oct-2001.
  137. ACM
    Hinze R (2001). A simple implementation technique for priority search queues, ACM SIGPLAN Notices, 36:10, (110-121), Online publication date: 1-Oct-2001.
  138. ACM
    Hinze R A new approach to generic functional programming Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (119-132)
  139. ACM
    Okasaki C Breadth-first numbering Proceedings of the fifth ACM SIGPLAN international conference on Functional programming, (131-136)
  140. ACM
    Giavitto J A framework for the recursive definition of data structures Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming, (45-55)
  141. ACM
    Okasaki C (2000). Breadth-first numbering, ACM SIGPLAN Notices, 35:9, (131-136), Online publication date: 1-Sep-2000.
  142. ACM
    Wansbrough K and Peyton Jones S Once upon a polymorphic type Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (15-28)
  143. ACM
    Okasaki C From fast exponentiation to square matrices Proceedings of the fourth ACM SIGPLAN international conference on Functional programming, (28-35)
  144. ACM
    Okasaki C (1999). From fast exponentiation to square matrices, ACM SIGPLAN Notices, 34:9, (28-35), Online publication date: 1-Sep-1999.
Contributors
  • The U.S. Military Academy at West Point

Recommendations

Reviews

Mirjana K. Ivanovic´

Many books on data structures assume imperative languages. This book is important because it presents data structures from the point of view of functional languages. The intended purposes of the book are threefold: it is a handy reference for professional functional programers, it can be used as a tutorial, and a wide range of computer science readers can use it for self-study. Unfortunately, the book is not appropriate for novices in programming and data structures. Some basic knowledge of abstract data types, such as stacks, queues, heaps, and finite maps, and of algorithm analysis is required. Okasaki presents many data structures, algorithms, and techniques using two important functional languages: Standard ML and Haskell. The book includes both classical data structures, such as red-black trees and binomial queues, and many new data structures developed exclusively for functional languages. Most of the programs can easily be adapted to other functional languages. Even C and Java programmers should find implementing these data structures a relatively straightforward process, although C's lack of automatic garbage collection can sometimes prove painful. The book is structured in three parts and consists of 11 chapters, an appendix, a list of references, and an index. The first chapter is an introduction and presents terminology that will be used in the rest of the book. The first part contains chapter 2, “Persistence,” and chapter 3, “Some Familiar Data Structures in a Functional Setting.” It introduces functional data structures and describes how they achieve persistence. The author then examines three well-known data structures—leftist heaps, binomial heaps, and red-black trees—and their implementation in Standard ML. The second part consists of four chapters: “Lazy Evaluation,” “Fundamentals of Amortization,” “Amortization and Persistence via Lazy Evaluation,” and “Eliminating Amortization.” These chapters are concerned with the relationship between lazy evaluation and amortization. The third part of the book contains chapters 8 through 11: “Lazy Rebuilding,” “Numerical Representations,” “Data-Structural Bootstrapping,” and “Implicit Recursive Slowdown.” It explores a handful of general techniques for designing functional data structures. This interesting new material is the most significant part of the book. The book is concise, and material is presented systematically. For readers without adequate preparation, it is rather difficult to follow and will require careful concentration. Depending on the reader's background, this approach can be either an advantage or a disadvantage. An appendix includes Haskell translations of the code presented in the text. The bibliography lists more than 120 closely related references. Every chapter ends with notes, giving pointers to additional literature on some important and interesting terms and notions presented in the chapter. The data structures, algorithms, and techniques presented are illustrated by many implemented examples, so programmers can develop their own functional data structures. Programs are physically well structured and readable, and are displayed in boxes. Okasaki has produced a valuable book about functional programming, exploring a wide range of data structures. Since there are not many books concerning these topics, the book is a significant contribution to the computer science literature. Everyone whose fields of interest are programming languages, data structures and algorithms, and especially declarative programming languages must have this book. It is also good additional material for computer science students.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.