Expression-oriented programming language
The topic of this article may not meet Wikipedia's general notability guideline. (July 2022)
An expression-oriented programming language is a programming language in which every (or nearly every) construction is an expression and thus yields a value. The typical exceptions are macro definitions, preprocessor commands, and declarations, which expression-oriented languages often treat as statements.
Criticism and prevention
Critics, including language designers,[failed verification] blame expression-orientation for an entire class of programming mistakes wherein a programmer accidentally codes an assignment expression, which replaces a variable with an expression rather than testing it for equality with that expression.
The designers of Python implemented assignment as a statement rather than an expression, thus prohibiting assignment from nesting inside any other statement or expression. (Until version 3.8 added 'assignment expressions', with a different syntax.)
This article needs additional citations for verification. (July 2022)
This section needs expansion. You can help by adding to it. (February 2018)
- "Glossary - The Rust Programming Language". web.mit.edu. Retrieved 2022-07-06.
- Syme, Don (2020-06-14). "The early history of F#". Proceedings of the ACM on Programming Languages. 4 (HOPL): 1–58. doi:10.1145/3386325. ISSN 2475-1421.
- Java Code Conventions "10.4 Variable Assignments"
- The Java Language Specification, Java SE 8 Edition "14.9 The if Statement"
- Introducing Ada
- The Python Language Reference "6.2. Assignment statements"
- "PEP 572: Assignment Expressions"
- "Functions - The Rust Programming Language". web.mit.edu. Retrieved 2022-07-06.
- "COS 326: Functional Programming". www.cs.princeton.edu. Retrieved 2022-07-06.