Concatenative language
Concatenative topics
Concatenative meta
Other languages
Meta
=== is a [[https://en.wikipedia.org/wiki/Tacit_programming|point-free]] programming language with [[https://en.wikipedia.org/wiki/Instance_variable|instance variables]] === FP trivia is a pure functional programming language inspired by the [[https://en.wikipedia.org/wiki/FP_(programming_language)|FP-Systems]] of [[https://en.wikipedia.org/wiki/John_Backus|John Backus]], [[APL]], [[Smalltalk]] and [[Lisp]]. It is intended to remedy the problematic fact that FP[1] is viewed as [[https://en.wikipedia.org/wiki/Function-level_programming|free of variables]], which is also true in terms of [[https://en.wikipedia.org/wiki/Lambda_calculus|lambda]] variables, but not in terms of the [[https://en.wikipedia.org/wiki/Instance_variable|instance variables]] that are used by FP trivia. The main data type is therefore a [[https://en.wikipedia.org/wiki/Key%E2%80%93value_database|table]] that the instance variables can access and also allows the [[https://en.wikipedia.org/wiki/Infix_notation|infix notation]] which is mostly [[https://en.wikipedia.org/wiki/Operator_associativity|right-associative]]. == Syntax == A table is a linear arrangement of [[https://en.wikipedia.org/wiki/Attribute%E2%80%93value_pair|key-value pairs]] similar to a [[https://en.wikipedia.org/wiki/Linked_list|linked list]]. [{ ( value0 key0 value1 key1 value2 key2 ... ... valuen keyn ) }] An instance variable can then access a certain key and pick out the associated value. [{ #key1 : (value0 key0 value1 key1 value2 key2 ... ... valuen keyn) --> value1 }] In the original FP by John Backus, it was only possible to access values in a sequence using numbers as selectors. This is still possible via integer numbers[2] on the values in the table. [{ [2] : (value0 key0 value1 key1 value2 key2 ... ... valuen keyn) --> value2 }] So you can define a function that adds three numbers. [{ triadd == (#a + #b + #c) <- a;b;c; triadd ° 10,20,30, --> 60 }] more [[https://github.com/metazip/pointfrip/blob/main/examples/library/standard.txt|code examples]] == References == - [1] [[https://doi.org/10.1145%2F359576.359579|Can programming be liberated from the von Neumann style?: A functional style and its algebra of programs]] - [2] integer numbers consist of the [[https://de.wikipedia.org/wiki/Gaussklammer|Gaussklammer]] == External resources == - [[https://github.com/metazip/pointfrip|Link to FP trivia pointfrip Repo]] and - [[https://www.heise.de/download/product/fp-trivia|FP trivia as Download]] (Reference in English/German) - [[https://pointfree-interpreter.github.io/|Website of FP trivia]] - [[https://pointfrip.github.io/|Website of Android-Calculator Pointfrip]] (Reference PDF, English/German) - [[https://esolangs.org/wiki/FP_trivia|esolangs/FP trivia]] [[image:https://raw.githubusercontent.com/metazip/pointfrip/main/tahomapointfrip.png]] [[image:https://pointfrip.github.io/Image2_nm.gif]]
Describe this revision:
Save