Wordless

Wordless is a high-level language created by User:DominoPivot, in which identifiers cannot contain word characters.

Identifiers
User-defined variable or function identifier must obey the following rules:


 * Identifiers CANNOT contain letters (from a to z or A to Z), digits (from 0 to 9) or whitespace, except for the first character which MAY be a digit.
 * Identifiers CANNOT consist solely of one digit.

This can be represented by the regular expression \d?[^0-9a-zA-Z\s]+

Therefore, the following identifiers are invalid:


 * user_name
 * database
 * dotProduct

But the following are valid substitutes:


 * δ_
 * δ_

Note that while valid, identifiers that use Leet are discouraged. Prefer 🐘 over 3Ļé¶ɧ@ɴ̩Ṱ.

Numbers
There is only one numeric type, decimal. A potential implementation could use DEC64, but determining the exact representation used isn't part of the scope of this article.

Number literals begin with one or more digits, optionally followed by a decimal point and one or more digits. Note that a decimal part alone or a number without digits after the decimal point are not valid, as some might confuse them with valid identifiers or a function with an argument.

These are valid number literals:


 * 009
 * 0.09

These are not:


 * 9. which is a valid identifier
 * 900. which is interpreted as the number 900 followed by the identifier
 * .9 which is interpreted as the identifier  followed by the number 9

Consider this example where it would be problematic to accept `.9` notation:

function. takes ' does print ' return ' end var 9. assign .9

The previous code creates a function named `.` which is just a wrapper around the  keyword. The function is then called with 9 as its argument, and the returned value is stored in the  variable.

String literal
String literals begin with the keyword  followed by a space. The string may then contain any characters, and ends with a space followed by the keyword. To write the word end in a string, one must first escape it by typing. Therefore, the following strings:

string Hello, world! end string  end string escape end end string escape escape end

would be equivalent to the following Python strings:

'Hello, world!' ' ' 'end' 'escape'

Note that an empty string can be represented with either one or two spaces between the keywords.

Hello, world!
print string Hello, world! end

which is equivalent to Python 3:

print('Hello, world!')

and produces output:

Hello, world!

Sum of two inputs
var 1# assign prompt string First number: end var 2# assign prompt string Second number: end var + assign 1# plus 2# print 1# concat string +  end concat 2# concat string  =  end concat +

which is equivalent to Python 3:

first_number = input('First number: ') second_number = input('Second number: ') sum = int(first_number) + int(second_number) print(first_number + ' + ' + second_number + ' = ' + str(sum))

and would produce this output if the user entered 10 and 25:

First number: 10 Second number: 25 10 + 25 = 35

Quicksort
function 💨📈 takes § does if len § lt 2 then return § end var ¶ assign open § at open len § idiv 2 close close var < assign open § method : open ' lambda ' lt ¶ end close close var = assign open § method : open ' lambda ' eq ¶ end close close var > assign open § method : open ' lambda ' gt ¶ end close close return 💨📈 < plus = plus 💨📈 > end

which is equivalent to Python 3

def quicksort(lst): if len(lst) < 2: return lst p = lst[len(lst) // 2] less = [x for x in lst if x < p]    eq = [x for x in lst if x == p]     more = [x for x in lst if x > p]     return quicksort(less) + eq + quicksort(more)