Wordless

Wordless is a high-level language created by User:DominoPivot, in which identifiers cannot contain word characters.
== Syntax ==
=== 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 print keyword. The function is then called with 9 as its argument, and the returned value is stored in the 9. variable.
=== String literal ===
String literals begin with the keyword string followed by a space. The string may then contain any characters, and ends with a space followed by the keyword end. To write the word end in a string, one must first escape it by typing escape end. 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.
== Examples ==
=== 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)
== External links ==
Tweet which lead to the invention of this language.
Category:Languages
Category:2018
Category:Unimplemented
Category:High-level