Concatenative language
Concatenative topics
Concatenative meta
Other languages
Meta
[[https://sr.ht/~jive/lamplight]] Lamplight is a concatenative language which expresses itself using only whitespace and the following ASCII characters: [{ : ( ) [ ] { } | " ' ` ! @ # $ % ^ & . , ? _ = ~ - + * < > \ / }] Memory operations and all syntactic constructs are implemented through ASCII sigils and delimited constructs; this abstraction is the core idea of lamplight and what differentiates it from other concatenative languages. [{ & duplicate # reference ^ delete % swap $ mutate }] Code can be composed in any Unicode character set, making it a language agnostic to any spoken/written one, a computational extension to the common %-+*/=%. [{ :∑ 0 % [ + ] / { 2 1 5 7 } ∑ . ⟨ 15 ⟩ }] It's design is based around it's encoding type; UTF-8, and makes working with Unicode runes and string composition really easy and explicit. [{ "I says" 'Mabel "So{`sp}anyways {#1} to {^} {^}..." ⟨ "So anyways, I says to Mabel I says..." ⟩ }] It's design is naturally reductive by nature; due to it's type system which is based upon type-matching against the stack. [{ 1 ( int { ++ } str [ . ] ) ⟨ 2 ⟩ }] This naturally results in the ability to define words which begin with a type match; giving us the ability to define a type-specific implementation for any word. [{ :++ ( str { "{^1}{^}" } ) 'hi 'howareyou ++ ⟨ 'hihowareyou ⟩ }] The few abstractions provided by lamplight provide a syntactically simple interface which is capable of expressing higher level language concepts with only low level operations; while doubly making code that is concise and beautifully readable.
Describe this revision:
Save