Why Functional Programming Matters

  title={Why Functional Programming Matters},
  author={John Hughes},
  journal={Comput. J.},
  • John Hughes
  • Published 1 April 1989
  • Computer Science
  • Comput. J.
As software becomes more and more complex, it is more and more important to structure it well. [] Key Method As examples, we manipulate lists and trees, program several numerical algorithms, and implement the alpha-beta heuristic (an algorithm from Artificial Intelligence used in game-playing programs). We conclude that since modularity is the key to successful programming, functional programming oers important advantages for software development.

Figures from this paper

JFun : Functional Programming in Java
This paper tries to show that writing programs in an object-oriented language by using functional programming concepts is possible and includes examples of list and tree manipulation functions, numerical integration and differentiation, and alpha-beta heuristic which is an algorithm from Artificial Intelligence used in game-playing programs implemented in Java programming language usingfunctional programming concepts.
Watch Out for that Tree! A Tutorial on Shortcut Deforestation
An advanced technique is studied that allows programmers to implement beautiful, modular programs and shows how to transform such programs, in a way that can be incorporated in a compiler, into programs that do not construct any intermediate structure.
If Functional Programming Is SoGreat, Why Isn't Everyone Using It?
The results of a meta-study conducted on multiple aspects of the functional programming paradigm and its representing languages are presented, identifying key issues responsible for the weak adoption and proposing and evaluating measures that should positively influence the usage of functional programming languages in industrial, commercial and practical settings.
Advanced Languages for Systems Software
This report describes the current plans for the Fox project, which is working to demonstrate the viability and benefits of advanced languages for programming real-world systems, and organized the research into the three areas of language design, compiler technology, and systems building.
Advanced Languages for Systems Software: The Fox Project in 1994
This report describes the current plans for the Fox project, which is working to demonstrate the viability and benefits of advanced languages for programming real-world systems, and organized the research into the three areas of language design, compiler technology, and systems building.
How functional programming mattered
The impact of functional programming is reviewed, focusing on how it has changed the way the way programs are constructed, the way the authors may verify programs, and fundamentally the way one may think about programs.
An Overview of Practical Impacts of Functional Programming
  • Abdullah Khanfor, Ye Yang
  • Computer Science
    2017 24th Asia-Pacific Software Engineering Conference Workshops (APSECW)
  • 2017
This paper aims at deriving an understanding of practical impacts of using this paradigm in the software engineering practices through a literature review of Functional Programming.
Why Testing Matters in Functional Programming Position Paper
This paper compares program testing with other approaches to software quality, and motivates why testing is important even when programming in a high level paradigm like functional programming.
Why Functional Programming Really Matters
The significance of functional programming is revealed as that the feasible approach to language extensibility which it enables is further applicable to programming in general and beyond. The essence
Pure and Lazy Lambda Mining - An Experience Report
In this exposition, the importance of how the code was structured in such a way that made safely refactoring and extending the model a relatively easy task is stressed, and how Haskell’s strong type system made it possible for the team to remain agile under changing specifications.


A Functional Theory of Exceptions
Applicative style programming, program transformation, and list operators
This paper examines how list operators can be used to guide the transformation process, and describes a small set of list operators that possess a “complete” set of transformation rules, allowing transformations to be performed very efficiently.
The next 700 programming languages
A family of unimplemented computing languages is described that is intended to span differences of application area by a unified framework. This framework dictates the rules about the uses of
Introduction to functional programming
  • R. Bird, P. Wadler
  • Economics
    Prentice Hall International series in computer science
  • 1988
This is a thorough introduction to the fundamental concepts of functional programming that includes a simple, yet coherent treatment of the Haskell class; a calculus of time complexity; and new coverage of monadic input-output.
Algorithmics : towards programming as a mathematical activity
The essence of the method is to start with an obviously correct—but possibly hopelessly inefficient—algorithm, and to improve by successively applying correctness-preserving transformations, akin to those used in mathematics.
Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs
A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules; these systems have semantics loosely coupled to states—only one state transition occurs per major computation.
A compiler for lazy ML
LML is a strongly typed, statically scoped functional Language with Lazy evaluation. It is compiled trough a number of program transformations which makes the code generation easier. Code is
Single-threaded polymorphic lambda calculus
  • J. Guzman, P. Hudak
  • Biology
    [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science
  • 1990
The primary goal of this study is to devise a method to express mutations to state in a modern (higher order, polymorphic, nonstrict) functional language, without sacrificing referential
ML for the working programmer
In teaching the methods of functional programming, how to program in Standard ML, a functional language recently developed at Edinburgh University, the author shows how to use such concepts as lists, trees, higher-order functions and infinite data structures.
An overview of Miranda
The purpose of this short article is to give a brief overview of the main features of Miranda, and to discuss basic ideas of the Miranda programming environment.