Functional and Declarative Are Not Synonyms, and Haskell Proves It

A developer essay argues that the industry wrongly treats 'functional' and 'declarative' as interchangeable terms, when they are actually independent dimensions of code. The author draws on a 1993 academic paper, 'Imperative Functional Programming,' co-written by Haskell creators Simon Peyton Jones and Philip Wadler, which acknowledged that monadic Haskell code closely resembles imperative programs. A follow-up 1994 paper by Haskell co-creator John Launchbury, 'Lazy Imperative Programming,' went further, explicitly stating that imperative features were introduced into Glasgow Haskell for input and output. The essay contends that pure functions can still produce imperative code structure, and that recognising this does not strip away the benefits of functional programming. The author frames clearer terminology around these concepts as increasingly urgent given the role AI now plays in amplifying existing code patterns.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in