Title
Recursion patterns and time-analysis
Abstract
This paper explores some ideas concerning the time-analysis of functional programs defined by instantiating typical recursion patterns such as folds, unfolds, and hylomorphisms. The concepts in this paper are illustrated through a rich set of examples in the Haskell programming language. We concentrate on unfolds and folds (also known as anamorphisms and catamorphisms respectively) of recursively defined types, as well as the more general hylomorphism pattern. For the latter, we use as case-studies two famous sorting algorithms, mergesort and quicksort. Even though time analysis is not compositional, we argue that splitting functions to expose the explicit construction of the recursion tree and its later consumption helps with this analysis.
Year
DOI
Venue
2005
10.1145/1071221.1071226
SIGPLAN Notices
Keywords
Field
DocType
later consumption,explicit construction,typical recursion pattern,time analysis,recursion tree,general hylomorphism pattern,functional program,rich set,splitting function,haskell programming language,timing analysis,functional programming,sorting algorithm
Operational semantics,Merge sort,Programming language,Functional programming,Computer science,Theoretical computer science,Quicksort,Haskell,Mutual recursion,Sorting algorithm,Recursion
Journal
Volume
Issue
ISSN
40
5
0362-1340
Citations 
PageRank 
References 
1
0.35
5
Authors
3
Name
Order
Citations
PageRank
Manuel Barbosa133724.91
Alcino Cunha229827.55
Jorge Sousa Pinto316023.19