Abstract
This paper describes a very flexible way to synthesize functions matching a given predicate. This can be used to find general recursive functions or λ-terms obeying an input–output behavior specified by a number of examples. Generating complex algorithms from just a small number of simple input-output pairs is the goal of inductive programming. This paper illustrates that our approach works well in some challenging examples.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Alimarine, A., Smetsers, S.: Efficient generic functional programming. Technical report niii-r0425, Institute for Computing and Information Sciences, Radboud University Nijmegen, The Netherlands (2004)
Banerjee, D.: A methodology for synthesis of recursive functional programs. ACM Transactions on Programming Languages and Systems (TOPLAS) 9(3), 441–462 (1987)
Bird, R.: Introduction to functional programming using Haskell, 2nd edn. Prentice Hall, Englewood Cliffs (1998)
Claessen, K., Hughes, J.: QuickCheck: a lightweight tool for random testing of Haskell programs. In: Proceedings of the 5th ACM SIGPLAN International Conference on Functional Programming, Montreal, Canada, pp. 268–279. ACM Press, New York (2000)
Cypher, A.: Watch what I do: programming by demonstration. MIT Press, Cambridge (1993)
Henderson, R.: Incremental learning in inductive programming. In: Schmid, U., Kitzelmann, E., Plasmeijer, R. (eds.) AAIP 2009. LNCS, vol. 5812, pp. 74–92. Springer, Heidelberg (2010)
Katayama, S.: Systematic search for lambda expressions. In: Proceedings of the 6th Symposium on Trends in Functional Programming (TFP 2005), pp. 195–205 (2005)
Katayama, S.: Efficient exhaustive generation of functional programs using monte-carlo search with iterative deepening. In: Ho, T.-B., Zhou, Z.-H. (eds.) PRICAI 2008. LNCS (LNAI), vol. 5351, pp. 199–210. Springer, Heidelberg (2008)
Koopman, P., Plasmeijer, R.: Fully automatic testing with functions as specifications. In: Horváth, Z. (ed.) CEFP 2005. LNCS, vol. 4164, pp. 35–61. Springer, Heidelberg (2006)
Koopman, P., Plasmeijer, R.: Systematic synthesis of functions. In: Nilsson, H. (ed.) Selected Papers of the 7th Symposium on Trends in Functional Programming, TFP 2006, Nottingham, UK, April 19-21, pp. 68–83 (2006), Intellect Books, ISBN 978-1-84150-188-8
Koopman, P., Plasmeijer, R.: Systematic synthesis of λ-terms. In: Barendsen, E., Capretta, V., Geuvers, H., Niqui, M. (eds.) Reflections on Type Theory, λ-Calculus, and the Mind - Essays dedicated to Henk Barendregt on the Occasion of his 60th Birthday, December 17, pp. 211–222 (2007) ISBN 978-90-9022446-6
Plasmeijer, R., van Eekelen, M.: Concurrent Clean language report (version 2.0) (December 2001), http://www.cs.ru.nl/~clean/
Schmid, U. (ed.): Inductive Synthesis of Functional Programs. LNCS (LNAI), vol. 2654. Springer, Heidelberg (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Koopman, P., Plasmeijer, R. (2010). Synthesis of Functions Using Generic Programming. In: Schmid, U., Kitzelmann, E., Plasmeijer, R. (eds) Approaches and Applications of Inductive Programming. AAIP 2009. Lecture Notes in Computer Science, vol 5812. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11931-6_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-11931-6_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11930-9
Online ISBN: 978-3-642-11931-6
eBook Packages: Computer ScienceComputer Science (R0)