| Functional Pearl trouble shared is trouble halved |
| Full text |
Pdf
(102 KB)
|
| Source
|
Haskell Workshop
archive
Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
table of contents
Uppsala, Sweden
Pages: 1 - 6
Year of Publication: 2003
ISBN:1-58113-758-3
|
|
Authors
|
|
Richard Bird
|
Oxford University Computing Laboratory, Oxford, England
|
|
Ralf Hinze
|
Universität Bonn, Römerstraβe, Bonn, Germany
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 4, Downloads (12 Months): 27, Citation Count: 2
|
|
|
ABSTRACT
A nexus is a tree that contains shared nodes, nodes that have more than one incoming arc. Shared nodes are created in almost every functional program---for instance, when updating a purely functional data structure---though programmers are seldom aware of this. In fact, there are only a few algorithms that exploit sharing of nodes consciously. One example is constructing a tree in sublinear time. In this pearl we discuss an intriguing application of nexuses; we show that they serve admirably as memo structures featuring constant time access to memoized function calls. Along the way we encounter Boolean lattices and binomial trees.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
|
| |
3
|
Ralf Hinze. Memo functions, polytypically! In Johan Jeuring, editor, Proceedings of the 2nd Workshop on Generic Programming, Ponte de Lima, Portugal, pages 17--32, July 2000. The proceedings appeared as a technical report of Universiteit Utrecht, UU-CS-2000-19.
|
| |
4
|
|
| |
5
|
|
| |
6
|
Erik Meijer , Maarten Fokkinga , Ross Paterson, Functional programming with bananas, lenses, envelopes and barbed wire, Proceedings of the 5th ACM conference on Functional programming languages and computer architecture, p.124-144, June 1991, Cambridge, Massachusetts, United States
|
| |
7
|
Donald Michie. "Memo" functions and machine learning. Nature, (218):19--22, April 1968.
|
| |
8
|
Shin-Cheng Mu. A calculational approach to program inversion. PhD thesis, Oxford University Computing Laboratory, 2003.
|
| |
9
|
|
| |
10
|
Simon Peyton Jones. Haskell 98 Language and Libraries. Cambridge University Press, 2003.
|
 |
11
|
|
CITED BY 2
|
|
|
|
|
Kedian Mu , Weiru Liu , Zhi Jin , Ruqian Lu , Anbu Yue , David Bell, Handling Inconsistency In Distributed Software Requirements Specifications Based On Prioritized Merging, Fundamenta Informaticae, v.91 n.3-4, p.631-670, August 2009
|
|