Triangularity

Triangularity is a stack-based esoteric programming language created in early 2018 by PPCG user Mr. Xcoder.
== Language Description ==
Any valid Triangularity program must have a padding made out of dots, laid out in 2 triangles. That is, the Kth line in the program (counting from the bottom upwards) must have K - 1 dots on both sides, and each line of a program must consist of exactly 2L - 1 characters (including the dots), where L is the number of lines in the program. Therefore, the character count of a program in this language must be listed in OEIS A056220.
=== Commands ===
 ! – Logical negation. The falsy values are 0, 0.0, 0j, "" (the empty string), [], {}, (), None, False, set() (the empty set).
 " – Begins and ends a string literal. Note that the whole string must be on a single line of code.
 ) – Push a 0 onto the stack.
 0123456789 – All these characters take the previous stack entry, multiply it by 10 and add their decimal digit value.
 + – Addition.
 / – Division.
 =>< – Comparison functions.
 @ – Increment the top of the stack (add 1 to its value).
 ^ – Exponentiation.
 _ – Negative. Multiplies the top of the stack by -1.
 ` – Cast to string.
 C – Counts the number of occurrences of an element in a sequence (either string or list)
 E – Evaluate. eval() in Python.
 I – Input at that index (modular, 0-based).
 J – Join a sequence with a certain separator.
 L – Length.
 O – Sort.
 R – Reverse.
 c – Character from ASCII value.
 d – Positive divisors.
 e – Dump the contents of a sequence separately onto the stack.
 f – Cast to int. Trims decimals.
 h – Retrieves the first N elements of a sequence.
 i – Reads all STDIN and returns a list of lines.
 l – Return the 0-based indices in a sequence at which a certain element occurs.
 m – Retrieve the element at index N (0-based) into a sequence.
 o – Character to ASCII value.
 p – Primality test.
 r – Range (half-inclusive).
 t – Trims the first N elements of a sequence.
 u – Sum.
 w – Wrap into a singleton list.
=== Stack Manipulation ===
 D – Duplicate. Push two copies of the argument.
 P – Pop. Discards the top of the stack.
 W – Wrap the whole stack into a list.
 s – Swap the top two stack entries.
=== Operators ===
There are two operators in Triangularity: Map and Filter. The former is denoted by the character M and is closed with }, and it lets you iterate over a sequence and runs a set of commands on a separate stack, for each element of that collection. The latter does the same, but instead of returning the results of the mapping, it returns the elements that yield a truthy value when ran through the given block of code. It is denoted by the character F and is closed using {.
== Examples == 
 
=== "Hello, World!" ===
The classic "Hello, World!" program looks like this:
 ....... .......
 ...... ......
 ..... .....
 .... ....
 ... ...
 .. ..
 . .
 "Hello, World!"
That's because the whole string must be on a single line of code. The shortest known program for this task is, however:
 .... ....
 ..."!"...
 .."rld"..
 ."o, Wo".
 "Hell"+++
Which uses multiple strings concatenated together, to avoid / minimise the one-line problem.
=== Automatic padding adder ===
 .......).......
 ......2)1......
 ...../)IL^.....
 ....f)rMD@_....
 ...)2)1/)IL^...
 ..f+`"'.'*"+E..
 .DWReD)2s^)Its.
 D+@sh+s+})10cJ.
This is a program that adds padding to a single-line string given as input, such that the output is a validly-structured Triangularity program. Disclaimer: This doesn't handle string literals.
== Online Interpreter ==
Thanks to Dennis, there is a free online interpreter available at Try it online!
== Resources ==
* Github repository (the source code is in Triangularity.py)
* Stack Exchange chat room
* Documentation
Category:Languages Category:Implemented Category:Functional paradigm Category:2018