I'm working on modernizing Rosetta Code's infrastructure. Starting with communications. Please accept this time-limited open invite to RC's Slack.. --Michael Mol (talk) 20:59, 30 May 2020 (UTC)

Category:Programming paradigm/Concatenative

From Rosetta Code
Programming paradigm/Concatenative is a programming language feature.

Concatenative programming passes a single data structure from function to function. With a concatenative language, concatenation is function composition. The concatenation of two programs is a valid program that passes this single data structure from the first program to the second program.

This single data structure is probably a stack. A concatenative language is probably a stack-oriented language. These languages tend to use reverse Polish notation with postfix operators. Programs push values on the data stack, then operate on those values. For example,

  • 3 4 + might push 7.
  • 9 7 - might push 2.
  • The concatenation 3 4 + 9 7 - might push both 2 and 7.
  • The concatenation 3 4 + 9 7 - * might push 14.

The major difference from other programming paradigms is that concatenative languages have combinatory logic as the predominant computational approach compared to others which use Lambda calculus, or Turing machines.

This approach is possible in other programming languages also. For example the tacit programming style of APL and point free style of haskell is similar to this.


This category has the following 18 subcategories, out of 18 total.