Joy (programming language)

Paradigm multiparadigmality function, concatenation, stack Manfred von Thunf 2001 strong dynamic None Scheme, C Factor, Cat, V, Trith

Joy - a functional language developed by Manfred von Thun of La Trobe University In Melbourne, Australia. Joy functions based on the composition, rather than the lambda calculus. It is a language akin to the Fort, although it is not its direct successor. Currently Joy is considered the canonical example of a concatenation of the programming language.

Example

Function of erecting a square defined as:

DEFINE square == dup *.

The Joy everything is a function that takes a stack as an argument and returns a stack as a result. For example, the number "5" is not an integer constant, and the short program put the number 5 on the stack.

• Dup operator simply duplicates the top element in the stack, putting to him a copy.
• Operator  *  takes the stack top two elements and puts them to work.

Thus the function of squaring simply duplicates the top item and then multiplies it to yourself samoё, formal parameters are not needed. This makes Joy concise. Defining quick sort:

 DEFINE qsort ==
[Small]
[]
[Uncons [>] split]
[[Swap] dip cons concat]
binrec.

«Binrec» - one of the many existing Joy recursive combinators, implementing a binary recursion. He expects the presence of software on a stack of four literals, which are:

• Termination condition (if "small" list (1 or 0 elements) it is already sorted)
• What if the termination condition is satisfied,
• What to do by default (to divide the list into two halves by comparing each element with a reference point)
• What to do at the end.