28 lines
No EOL
1.6 KiB
Text
28 lines
No EOL
1.6 KiB
Text
{{language|Burlesque
|
|
|exec=interpreted
|
|
|site=http://mroman.ch/burlesque
|
|
|checking=dynamic
|
|
}}
|
|
|
|
'The Burlesque Programming Language' as a stack-based, dynamic typed, concatenative, lazy and esoteric programming language developed by
|
|
Roman Müntener since 2012. It was designed to write short and compact code for simple problems. The language specification does not specify
|
|
I/O support but the official interpreter pushes stdin on program start and prints remaining elements on the stack on program termination. Other
|
|
than that there are no I/O capabilities. Due to it being lazy it supports stuff like infinite lists (although the Burlesque term for list is block).
|
|
It does not allow random stack access directly however methods have been found to achieve that. Since Version 1.7.0 there is a hidden state feature which
|
|
allows to hide elements at the bottom of the stack and load it from there. Burlesque's main advantage is its rich set of builtins and implicit loops.
|
|
(There is only a while loop, but functions like map/reduce/filter obviously loop over lists implicit. Therefore, while loops are rarely used). Burlesque
|
|
is turing-complete. A brainfuck interpreter:
|
|
|
|
<syntaxhighlight lang="burlesque">
|
|
".""X"r~"-""\/^^{vvvv}c!!!-.256.%{vvvv}c!sa\/"r~"+""\/^^{vvvv}c!!!+.
|
|
256.%{vvvv}c!sa\/"r~"[""{"r~"]""}{\/^^{vvvv}c!!!}w!"r~">""+."r~"<""
|
|
-."r~"X""\/^^{vvvv}c!!!L[+]\/+]\/+]^^3\/.+1RAp^\/+]\/[-1RA^^-]\/[-\/
|
|
"r~"\'\'1 128r@{vv0}m[0"\/.+pse!vvvv<-sh
|
|
</syntaxhighlight>
|
|
|
|
|
|
You might also want to read the article on [[eso:Burlesque|esowiki]].
|
|
|
|
{{language programming paradigm|concatenative}}
|
|
|
|
[[Category:Esoteric Languages]] |