Recursion patterns and time-analysis
| Main Author: | |
|---|---|
| Publication Date: | 2005 |
| Other Authors: | , |
| Format: | Article |
| Language: | eng |
| Source: | Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| Download full: | http://hdl.handle.net/1822/2762 |
Summary: | 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. |
| id |
RCAP_c4d88b0f22576f5a2598fc817b7e6269 |
|---|---|
| oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/2762 |
| network_acronym_str |
RCAP |
| network_name_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository_id_str |
https://opendoar.ac.uk/repository/7160 |
| spelling |
Recursion patterns and time-analysisFunctional programmingTime analysisRecursion patternsScience & TechnologyThis 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.Fundação do Ministério de Ciência e Tecnologia (FCT) - POSI/CHS/44304/2002.Association for Computing MachineryUniversidade do MinhoBarbosa, ManuelCunha, AlcinoPinto, Jorge Sousa2005-052005-05-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articleapplication/pdfhttp://hdl.handle.net/1822/2762eng"ACM Sigplan Notices". ISSN 0362-1340. 40:5 (2005) 45-54.0362-134010.1145/1071221.1071226info:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T05:57:49Zoai:repositorium.sdum.uminho.pt:1822/2762Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T15:36:26.879675Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse |
| dc.title.none.fl_str_mv |
Recursion patterns and time-analysis |
| title |
Recursion patterns and time-analysis |
| spellingShingle |
Recursion patterns and time-analysis Barbosa, Manuel Functional programming Time analysis Recursion patterns Science & Technology |
| title_short |
Recursion patterns and time-analysis |
| title_full |
Recursion patterns and time-analysis |
| title_fullStr |
Recursion patterns and time-analysis |
| title_full_unstemmed |
Recursion patterns and time-analysis |
| title_sort |
Recursion patterns and time-analysis |
| author |
Barbosa, Manuel |
| author_facet |
Barbosa, Manuel Cunha, Alcino Pinto, Jorge Sousa |
| author_role |
author |
| author2 |
Cunha, Alcino Pinto, Jorge Sousa |
| author2_role |
author author |
| dc.contributor.none.fl_str_mv |
Universidade do Minho |
| dc.contributor.author.fl_str_mv |
Barbosa, Manuel Cunha, Alcino Pinto, Jorge Sousa |
| dc.subject.por.fl_str_mv |
Functional programming Time analysis Recursion patterns Science & Technology |
| topic |
Functional programming Time analysis Recursion patterns Science & Technology |
| description |
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. |
| publishDate |
2005 |
| dc.date.none.fl_str_mv |
2005-05 2005-05-01T00:00:00Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/article |
| format |
article |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/1822/2762 |
| url |
http://hdl.handle.net/1822/2762 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.relation.none.fl_str_mv |
"ACM Sigplan Notices". ISSN 0362-1340. 40:5 (2005) 45-54. 0362-1340 10.1145/1071221.1071226 |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Association for Computing Machinery |
| publisher.none.fl_str_mv |
Association for Computing Machinery |
| dc.source.none.fl_str_mv |
reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia instacron:RCAAP |
| instname_str |
FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| instacron_str |
RCAAP |
| institution |
RCAAP |
| reponame_str |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| collection |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) |
| repository.name.fl_str_mv |
Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia |
| repository.mail.fl_str_mv |
info@rcaap.pt |
| _version_ |
1833595420491644928 |