@neauoire So a catlang is a constrained functional language.
4 comments
@neauoire What does it mean to have "complete expressions"? Referential transparency refers to the names. If something is not named in an expression, it does not affect referential transparency. @wim_v12e like the difference between a lambda and a clojure, or from the tacit point of view where you don't pass assignment and how returning multiple values at once is done. `(+ x y)`, versus `+` @neauoire By my understanding, |
@wim_v12e it's kind of a wibbly wobbly category, but yeah.
A concatenative language is completely associative: you can group words within it anyhow you'd like, and maintain the same semantics. A pure functional language is referentially transparent: if two complete expressions have the same semantics, they can be interchanged without changing the program semantics. The functional language, however, requires "complete expressions"; the concatenative language doesn't.
https://wiki.xxiivv.com/site/concatenative
@wim_v12e it's kind of a wibbly wobbly category, but yeah.
A concatenative language is completely associative: you can group words within it anyhow you'd like, and maintain the same semantics. A pure functional language is referentially transparent: if two complete expressions have the same semantics, they can be interchanged without changing the program semantics. The functional language, however, requires "complete expressions"; the concatenative language doesn't.