We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
eTalk
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
eTalk is an esoteric programming language created by Markus Kliegl in 2001.
Design Philosophy
eTalk is all you need for setting up your e-Security and ensuring your safety. The "e" can possibly stand for "esoteric," but such a horrible thought has no place in the world of successful eBusinessing.
Forget Perl, this is the most natural you can possibly get!
Syntax
Programs are written as English-like sentences.
A program consists of sentences. A sentence has a person or pronoun, a verb, arguments, and a period, question mark, or exclamation mark.
Pronouns
Pronouns act as type declarations:
| Pronoun | Type |
|---|---|
| I | string |
| You | integer |
| He | character |
| She | ASCII |
| We | negation / repetition |
| They | comments (see punctuation) |
Names (e.g., Sally, John, Jim, Joe) act as variables. They must match the regex [A-Z][a-z]*.
Punctuation
A period makes the sentence a statement.
A question mark is used when recalling a value.
An exclamation mark is unused until Markus finds a purpose for it.
Parentheses group sentences and embed sentences within sentences.
Double quotes (") cause punctuation and special characters to be ignored.
Comments use the pronoun They with the verb ignore; everything up to the next punctuation is ignored, whichever punctuation it is.
Control Flow
Truthiness: 0, , "" and similar are false; anything else is true.
Negation: the pronoun we with the verb negate.
Conditionals: logical or and and, shell-script style (like [ -f "$file" ] && rm $file || echo "..."). and binds higher than or.
Loops: We repeat (<condition>) (<sentences>).
| Verb | Action | Who? |
|---|---|---|
| say | print arguments to screen | pronouns |
| whisper | return value of arguments | all |
| ignore | ignore sentence (comment) | they |
| hear | assign a value | name |
| lose | subtract one from value | you, she |
| find | add one to value | you, she |
| remember | assigns sentences | name |
| recall | execute 'remember'ed sentences | name |
| ask | reads input | pronoun |
| negate | logical not | we |
| repeat | if non-zero repeat a la BF | we |
Examples
They ignore me and this useless comment.
I say "Hello World!". They ignore will print hello world.
You say 2003. They ignore will print 2003.
He says 65. They ignore will print a.
He says a. They ignore will print a.
She says a. They ignore will print 65.
Sally hears (I whisper "Hi!".). I say (Sally whispers what?).
They ignore assigns a string to sally and prints it.
John hears (You whisper 200.). Jim remembers (You say (You lose
(John whispers what?).).). Jim recalls what?
Joe hears (You whisper 10). We repeat (Joe whispers what?)
(Joe hears (You lose (Joe whispers what?).). You say (Joe
whispers what?).). They ignore prints 9 to 0.
She whispers 2 and I say "True!" or I say "False!".
The examples show that the type pronouns affect output: a character prints as a character, while an ascii prints as its numeric code (He says 65 prints a, while She says a prints 65).