## Systematic search for lambda expressions (2005)

### Cached

### Download Links

- [nautilus.cs.miyazaki-u.ac.jp]
- [www.cs.ioc.ee]
- DBLP

### Other Repositories/Bibliography

Venue: | In Proceedings Sixth Symposium on Trends in Functional Programming (TFP2005 |

Citations: | 25 - 1 self |

### BibTeX

@INPROCEEDINGS{Katayama05systematicsearch,

author = {Susumu Katayama},

title = {Systematic search for lambda expressions},

booktitle = {In Proceedings Sixth Symposium on Trends in Functional Programming (TFP2005},

year = {2005}

}

### Years of Citing Articles

### OpenURL

### Abstract

This paper presents a system for searching for desired small functional programs by just generating a sequence of type-correct programs in a systematic and exhaustive manner and evaluating them. The main goal of this line of research is to ease functional programming, along with the subgoal to provide an axis to evaluate heuristic approaches to program synthesis such as genetic programming by telling the best performance possible by exhaustive search algorithms. While our previous approach to that goal used combinatory expressions in order to simplify the synthesis process, which led to redundant combinator expressions with complex types, this time we use de Bruijn lambda expressions and enjoy improved results. 1

### Citations

70 | Inductive functional programming using incremental program transformation
- Olsson
- 1995
(Show Context)
Citation Context ...ns before trying heuristic approaches. In addition to the old system, this research is related to GP algorithms such as PolyGP[11],[10] that is GP under polymorphic higher-order type system, and ADATE=-=[6]-=- that uses monomorphic first-order type system. Although it is usually desirable toscompare the proposed method with such algorithms, here we do not compare efficiency with them for the reasons below.... |

51 | Typing Haskell in Haskell
- Jones
- 1999
(Show Context)
Citation Context ... inference monad When implementing type inference, it is usually convenient to define a monad to hide states such as the current substitution and fresh variable ID and to represent error states (e.g. =-=[2]-=-). One of such implementations in Haskell can be as follows: ������� TI a = TI (Subst → Int → Maybe (a, Subst, Int)) where Substs represent the current substitution and Ints represent the ID of the ne... |

35 | Generalizing generalized tries
- Hinze
(Show Context)
Citation Context ...and • looking up the trie instead of computing the function value whenever the return value for any argument is required. How to implement the generalized trie indexed by any data type is detailed in =-=[1]-=-. 2 When memoizing unifyableExprs’, the trie is indexed by avails and reqtype, and has a Spivey’s monad instead of Recomp at each leaf node. The type variables in avails and reqtype should be normaliz... |

33 | A Calculational Fusion System HYLO
- Onoue, Hu, et al.
- 1997
(Show Context)
Citation Context ...ithm because without doing so foldr ? ? [] pattern can appear everywhere even when the requested type has nothing to do with lists at all. Though such fusion points can be identified by a general rule=-=[7]-=-, currently we use the following heuristic to capture them: • identify the library functions that consume some data type beforehand; whether a function is a consumer or not is currently just guessed f... |

18 |
Director strings as combinators
- Kennaway, Sleep
- 1988
(Show Context)
Citation Context ...e is no type-consistent expression below that node; • the complexity of the request type bloats rapidly as the program size increases. A solution to the above problems could be use of director strings=-=[4]-=-. In this paper we go further to search over the de Bruijn lambda expressions equivalent to the expressions using director strings. One of the simplest forms of this algorithm is the following varied ... |

12 | PolyGP: a polymorphic genetic programming system in Haskell. Genetic Programming 1998
- Yu, Clack
- 1998
(Show Context)
Citation Context ...l, there is large room for improvements by suppressing redundant expressions before trying heuristic approaches. In addition to the old system, this research is related to GP algorithms such as PolyGP=-=[11]-=-,[10] that is GP under polymorphic higher-order type system, and ADATE[6] that uses monomorphic first-order type system. Although it is usually desirable toscompare the proposed method with such algor... |

10 | Combinators for breadth-first search
- Spivey
(Show Context)
Citation Context ....2.2 are devoted to definition of the monad for doing breadth-first search and type inference at the same time. Section 2.2.3 overviews the whole algorithm 2.2.1 Monad for breadth-first search Spivey =-=[8]-=- devised a monad that abstracts and thus eases implementation of breadthfirst search algorithms. Its ideas are: • the monad is defined as a stream of bags, representing a prioritized bag of alternativ... |

10 | Polymorphism and genetic programming
- Yu
- 2001
(Show Context)
Citation Context ...ere is large room for improvements by suppressing redundant expressions before trying heuristic approaches. In addition to the old system, this research is related to GP algorithms such as PolyGP[11],=-=[10]-=- that is GP under polymorphic higher-order type system, and ADATE[6] that uses monomorphic first-order type system. Although it is usually desirable toscompare the proposed method with such algorithms... |

8 |
A new formula for the execution of a categorical combinators
- Lins
- 1986
(Show Context)
Citation Context ...ohibit use of constructors when invoking unifyableExprs for the parameter of consumed data type. 2.3.4 Interpreter The improved system uses an interpreter based on categorical combinatory logic (CCL) =-=[5]-=-, while that used by the old system used the Turner’s algorithm. This is a natural change because CCL has a strong tie with the de Bruijn style lambda expressions. 3 EFFICIENCY EVALUATION Honestly spe... |

7 | A functional shell that dynamically combines compiled code
- Weelden, Plasmeijer
- 2004
(Show Context)
Citation Context ... may have more concrete image from Subsection 2.1, though further rearrangement of the obtained expressions may be desired. Another application can be auto-completion in functional shells (e.g. Esther=-=[9]-=-). Related work Genetic Programming (GP) also searches for functional programs under likewise conditions, which is a kind of heuristic approach to search for programs by maintaining a set of “promisin... |

3 |
of brute-force search in strongly-typed inductive functional programming automation
- Power
- 2004
(Show Context)
Citation Context ... the synthesis. Also, for the above reason it is desirable that synthesized programs are easy to understand and pretty printed. The proposed algorithm improves the efficiency of the previous algorithm=-=[3]-=- by doing the following: • it searches for de Bruijn lambda expressions, while the old one obtains combinatory expressions which is more redundant; • the function taking the set of available atom expr... |