## Towards Manipulation of Mutually Recursive Functions (1998)

Venue: | In 3rd. Fuji International Symposium on Functional and Logic Programming (FLOPS’98 |

Citations: | 3 - 0 self |

### BibTeX

@INPROCEEDINGS{Iwasaki98towardsmanipulation,

author = {Hideya Iwasaki and Zhenjiang Hu and Masato Takeichi},

title = {Towards Manipulation of Mutually Recursive Functions},

booktitle = {In 3rd. Fuji International Symposium on Functional and Logic Programming (FLOPS’98},

year = {1998},

publisher = {World Scientific}

}

### OpenURL

### Abstract

In functional programming, Constructive Algorithmics is one of... In this paper, we shall formalize mutual recursive data types in terms of bifunctors and extend hylomorphisms to describe mutual recursive functions on this type. It is shown that theorems (transformation rules) for original hylomorphisms also hold while keeping the same form for extended (mutual) hylomorphisms. As a result, program transformation by calculation, which mechanically applies these theorems, is also possible without adding any special rules for mutual recursion.

### Citations

334 | Theorems for free - Wadler - 1989 |

198 | A short-cut to deforestation
- Gill, Launchbury, et al.
- 1993
(Show Context)
Citation Context ...rate how the Mutualizing and Mutual Acid Rain theorems work in the process of fusion transformation. Consider the function zip which turns a pair of two lists into a list of pairs. It was referred in =-=[2]-=- as a limitation of the transformation proposed there in that both inputs of zip cannot be deforested. (Only one of them can be deforested.) Takano and Meijer 11 also showed a similar example about zi... |

111 | A fold for all seasons - Sheard, Fegaras - 1993 |

105 |
Data structures and program transformation
- Malcolm
- 1990
(Show Context)
Citation Context ...nd Section 7 gives conclusion. 2 Preliminary Before introducing bifunctor and mutual hylomorphism, we briefly review the formalization of normal hylomorphism. More detailed discussion can be found in =-=[1,6,7,11]-=-. In this paper, our default category C is CPO. In the normal case, functors (known as polynomial functors) from C to C are constructed by the following four operations. Here, X and Y denote types, p ... |

97 |
and Order in Algorithmics
- Law
- 1992
(Show Context)
Citation Context ...nd Section 7 gives conclusion. 2 Preliminary Before introducing bifunctor and mutual hylomorphism, we briefly review the formalization of normal hylomorphism. More detailed discussion can be found in =-=[1,6,7,11]-=-. In this paper, our default category C is CPO. In the normal case, functors (known as polynomial functors) from C to C are constructed by the following four operations. Here, X and Y denote types, p ... |

74 | Warm fusion: deriving build-catas from recursive definitions - Launchbury, Sheard - 1995 |

52 | Heap profiling of lazy functional programs
- Runciman, Wakeling
- 1993
(Show Context)
Citation Context ...elds the final program (Figure 4(b)) which completely eliminates the intermediate data structures. 5.3 Example of Logic Formulae Our final example gives a more practical fusion example extracted from =-=[9]-=-. The target program takes as input logic formulae with the type: Formula = Sym Char j Not Formula j Con (Formula; Formula) j Dis (Formula; Formula) j Imp (Formula; Formula) j Eqv (Formula; Formula) a... |

47 | Deriving structural hylomorphisms from recursive definitions
- Hu, Iwasaki, et al.
- 1996
(Show Context)
Citation Context ...diate data structures generated by maptw xs and mapsq ys. The first step is to derive a normal hylomorphism from the definition of zip. Since the detailed algorithm of this derivation can be found in =-=[3]-=-. we only show the resultant hylomorphism. zip = [[ OE; j; / ]] M2;M1 / (xs; ys) = case (xs; ys) of (Nil; ) ! (1; ()) (Cons (a; as); Nil) ! (2; ()) (Cons (a; as); Cons (b; bs)) ! (3; (a; b; (as; bs)))... |

15 |
Functional Programming with Bananas
- Meijer, Fokkinga, et al.
- 1991
(Show Context)
Citation Context ...nd Section 7 gives conclusion. 2 Preliminary Before introducing bifunctor and mutual hylomorphism, we briefly review the formalization of normal hylomorphism. More detailed discussion can be found in =-=[1,6,7,11]-=-. In this paper, our default category C is CPO. In the normal case, functors (known as polynomial functors) from C to C are constructed by the following four operations. Here, X and Y denote types, p ... |

4 | An Extension of the Acid Rain Theorem
- Hu, Iwasaki, et al.
- 1996
(Show Context)
Citation Context ...fuse the zip program given in Section 5.2. For fusing the composition between a hylomorphism (traversing multiple data structures simultaneously) and a pair of two hylomorphisms, our previous work in =-=[4] gave a ge-=-neralization of the (normal) Acid Rain Theorem which has a different form compared with the original one. From the viewpoint of program transformation, therefore, this "generalized" theorem ... |

2 | A Calculational Fusion System - Onoue, Hu, et al. - 1997 |