The foundations of functional programming languages are examined from both historical and technical perspectives.
Their evolution is traced through several critical periods. Particular attention is paid to the main features that characterize modern functional languages.