Declarative programming: Difference between revisions

Content deleted Content added
m Lisp: don't overexplain portmanteau: see MOS:NOBOLD for the principle
Functional programming: R7RS does not define a specific order, but says that one consistent order must exist. Thus, it's irrelevant to include it here.
Tag: references removed
Line 43:
 
===Functional programming===
Functional programming languages such as [[Haskell (programming language)|Haskell]], [[Scheme (programming language)|Scheme]], and [[Standard ML|ML]] evaluate expressions via function application. Unlike the related but more imperative paradigm of [[procedural programming]], functional programming places little emphasis on explicit sequencing. For example, in [[Scheme (programming language)|Scheme]], the order of evaluation of many kinds of sub-expressions is undefined or implicit.<ref>{{cite web|url=https://small.r7rs.org/attachment/r7rs.pdf |title=Revised<sup>7</sup> Report on the Algorithmic Language Scheme |publisher=Scheme Working Group 1 |access-date=2020-12-05}}</ref> Instead, computations are characterised by various kinds of recursive [[higher-order function]] application and [[Function composition (computer science)|composition]], and as such can be regarded simply as a set of mappings between [[Domain_of_a_function|___domain]]s and [[codomain]]s. Many functional languages, including most of those in the ML and Lisp families, are not [[purely functional programming|purely functional]], and thus allow the introduction of [[side effect (computer science)|stateful effects]] in programs.
 
===Hybrid languages===