TY - JOUR
T1 - Zipper-based modular and deforested computations
AU - Martins, Pedro
AU - Fernandes, João Paulo
AU - Saraiva, João
N1 - Publisher Copyright:
© Springer International Publishing Switzerland 2015.
PY - 2015/3/21
Y1 - 2015/3/21
N2 - In this paper we present a methodology to implement multiple traversal algorithms in a functional programming setting. The implementations we obtain s of highly modular and intermediate structure free programs, that rely on the concept of functional zippers to navigate on data structures. Even though our methodology is developed and presented under Haskell, a lazy functional language, we do not make essential use of laziness. This is an essential difference with respect to other attribute grammar embeddings. This also means that an approach similar to ours can be followed in a strict functional setting such as Ocaml, for example. In the paper, our technique is applied to a significant number of problems that are well-known to the functional programming community, demonstrating its practical interest.
AB - In this paper we present a methodology to implement multiple traversal algorithms in a functional programming setting. The implementations we obtain s of highly modular and intermediate structure free programs, that rely on the concept of functional zippers to navigate on data structures. Even though our methodology is developed and presented under Haskell, a lazy functional language, we do not make essential use of laziness. This is an essential difference with respect to other attribute grammar embeddings. This also means that an approach similar to ours can be followed in a strict functional setting such as Ocaml, for example. In the paper, our technique is applied to a significant number of problems that are well-known to the functional programming community, demonstrating its practical interest.
KW - Deforested computation
KW - Functional programming
KW - Generic programming
UR - http://www.scopus.com/inward/record.url?scp=84925378290&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84925378290&partnerID=8YFLogxK
U2 - 10.1007/978-3-319-15940-9_10
DO - 10.1007/978-3-319-15940-9_10
M3 - Article
AN - SCOPUS:84925378290
SN - 0302-9743
VL - 8606
SP - 407
EP - 427
JO - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
JF - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
ER -