Lakshayati
Lakshayati is an esoteric programming language created in 2020 with only three operations. Its only data type is strings, and the language relies heavily on executing strings as code. Its name derives from the Sanskrit word लक्षय् meaning "to define".
Language overview
Lakshayati has three operations:
- assigning string values to variables
- concatenating strings
- executing strings as code
If a line begins with a variable, it assigns said variable to the value to the right.
ex: Assigns string "hello world" to variable
variable "hello world"
To display a string to the screen, assign said string to the variable /
(or alternatively /
)
ex: Displays "hello world" to the screen
/ "hello world"
In Lakshayati, if a line begins with a string OR only contains a variable, it will execute the string (or string contained in the variable) as code. All variables are global and mutable; they can be assigned and reassigned in the body of any executed string.
ex: Executes the string "variable 'hello world'", which assigns "hello world" to variable, and then prints "hello world"
new_variable "variable 'hello world'" new_variable / variable
Lakshayati variables can use any Unicode characters that aren't quotes or white-space. It also accepts quotes from different languages to form strings. As such, Lakshayati can be typed on nearly any keyboard, regardless of language or writing system. More specific information can be found here.
Turing completeness
Lakshayati is Turing complete. A proof of this can be shown through a Lakshayati implementation of Smallfuck (with infinite memory), which can be found here.
Example programs
Quine (program that prints itself)
line_1 '''single_quote "'"''' line_2 """double_quote '"'""" line_3 " / 'line_1 ' single_quote single_quote single_quote line_1 single_quote single_quote single_quote ' line_2 ' double_quote double_quote double_quote line_2 double_quote double_quote double_quote ' line_3 ' double_quote line_3 double_quote ' ' ' ' ' ' line_1 ' ' line_2 ' ' line_3" single_quote "'" double_quote '"' / 'line_1 ' single_quote single_quote single_quote line_1 single_quote single_quote single_quote ' line_2 ' double_quote double_quote double_quote line_2 double_quote double_quote double_quote ' line_3 ' double_quote line_3 double_quote ' ' ' ' ' ' line_1 ' ' line_2 ' ' line_3
External resources
GitHub page for Lakshayati
Online interpreter for Lakshayati