Abstract
This chapter presents a functional language micro-ML, a small subset of ML or F#. A functional programming language is one in which the evaluation of expressions and function calls is the primary means of computation. A pure functional language is one in which expressions cannot have side effects, such as changing the value of variables, or printing to the console. The micro-ML language is first-order, which means that functions cannot be used as values. ChapterĀ 5 presents a higher-order functional language, in which functions can be used as values as in ML and F#.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Augustsson, L.: A compiler for Lazy ML. In: 1984 ACM Symposium on Lisp and Functional Programming, Austin, TX, pp. 218ā227. ACM, New York (1984)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Fourth ACM Symposium on Principles on Programming Languages, Los Angeles, CA, January 1977, pp. 238ā252. ACM, New York (1977)
Ecma International: ECMAScript language specification. Standard ECMA-262, 3rd edn. (1999). At http://www.ecma-international.org/publications/standards/Ecma-262.htm
Gordon, M.J., Milner, R., Wadsworth, C.P.: Edinburgh LCF. Lecture Notes in Computer Science, vol.Ā 78. Springer, Berlin (1979)
Johnsson, T.: Efficient compilation of lazy evaluation. SIGPLAN Not. 19(6), 58ā69 (1984). ACM SIGPLAN 1984 Symposium on Compiler Construction
Kahn, G.: Natural semantics. In: Brandenburg, F., Vidal-Naquet, G., Wirsing, M. (eds.) STACS 87. 4th Annual Symposium on Theoretical Aspects of Computer Science, Passau, Germany. Lecture Notes in Computer Science, vol. 247, pp. 22ā39. Springer, Berlin (1987)
Kam, J.B., Ullman, J.D.: Monotone data flow analysis frameworks. Acta Inform. 7, 305ā317 (1977)
Leroy, X.: The Zinc experiment: an economical implementation of the ML language. Rapport Technique 117, INRIA Rocquencourt, France (1990)
McCarthy, J.: Recursive functions of symbolic expressions. Commun. ACM 3(4), 184ā195 (1960)
McCarthy, J., et al.: Lisp 1.5 Programmerās Manual. MIT Press, Cambridge (1962)
Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. MIT Press, Cambridge (1990)
Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)
Naur, P.: Checking of operand types in ALGOL compilers. BIT 5, 151ā163 (1965)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, 2nd edn. Springer, Berlin (2005)
OCaml: Home page. At http://caml.inria.fr/
Peyton-Jones, S.: Haskell 98 Language and Libraries. The Revised Report. Cambridge University Press, Cambridge (2003)
Plotkin, G.D.: A structural approach to operational semantics. Tech. Rep. FN-19, DAIMI, Aarhus University, Denmark (1981)
Sussman, G.J., Steele, G.L.: Scheme: an interpreter for the extended lambda calculus. MIT AI Memo 349, Massachusetts Institute of Technology (1975)
Turner, D.A.: Mirandaāa non-strict functional language with polymorphic types. In: Jouannaud, J.P. (ed.) Functional Programming Languages and Computer Architecture, Nancy, France, September 1985. Lecture Notes in Computer Science, vol. 201, pp. 1ā16. Springer, Berlin (1985)
Author information
Authors and Affiliations
Rights and permissions
Copyright information
Ā© 2012 Springer-Verlag London
About this chapter
Cite this chapter
Sestoft, P. (2012). A First-Order Functional Language. In: Programming Language Concepts. Undergraduate Topics in Computer Science, vol 50. Springer, London. https://doi.org/10.1007/978-1-4471-4156-3_4
Download citation
DOI: https://doi.org/10.1007/978-1-4471-4156-3_4
Publisher Name: Springer, London
Print ISBN: 978-1-4471-4155-6
Online ISBN: 978-1-4471-4156-3
eBook Packages: Computer ScienceComputer Science (R0)