Teg
Jump to navigation
Jump to search
Teg is an esolang based on strings invented by User:A. It has condensability as well as minimalism and legibility in mind. Normally, it is used to code golf, but it might be used in other circumstances. (By the way, it is a Text derivative.) What differs between this and other esolangs is:
- Alphanumerical characters are automatically printed (including quotation marks)
- There are readable and straightforward
if
statements,for
andwhile
loops(at least better than Keg) - A few commands should be remembered
- And so on...
Simple documentation
[]:evaluate operator. Note that this prevents a block of Teg code to be printed. a?b:c:If a is not 0, return b. Otherwise, return c. a?b:If a is not 0, return b. f(i:end){block}:For loop. Sequentially set i into values from 0 to end while executing block. For example: if end is 5, i will be set to 0, 1, 2, 3, 4, and 5. f(i:begin,end){block}:Also a for loop. Like the one above, sets i into values from begin to end. f(i:begin,end,step){block}:Yet another variation of the for loop. Sets i into values from begin to end with a step. For example: if begin=0 and end=8 and step=2, i will be set to 0, 2, 4, 6, and 8. Another example: if begin=8 and end=0 and step=-2, i will be set to 8, 6, 4, 2, and 0. =: define a variable(or possibly a macro). ==: check if equal !=: check if not equal >: greater than <: less than >=: greater than or equal <=: less than or equal !: bitwise NOT &: bitwise AND |: bitwise OR +: add -: subtract *: multiply /: divide %: find the remainder ^: to the power of :x:: input a variable(macro?) x `x`: switch between integer and character variables
Examples
99 bottles of beer
This non-cheating version is a lot shorter than the cheating version of Keg.
b= bottle[i!=1?s] of beer f(i:99,1){[i][b] on the wall, [i][b]. Take one down, pass it around, i?[i-1]:no more[b] on the wall.}
Hello, world!
Hello, World!
Quine
Q
Cat program
w(1){:q:[q]}
FizzBuzz program
f(i:z){!i%3?!i%5?FizzBuzz:Fizz:!i%5?Buzz:[i] }
Fibonacci sequence
a=1;b=1;w(1){[a] a=a+b;t=a;a=b;b=t}
Deadfish interpreter
c(i);w(1){>>:i:i=="d"?[a=a-1]:i=="i"?[a=a+1]:i=="o"?[a]:i=="s"?[a=a*a]}
Factorial
:c:f(i:c,1){a=a*i}[a]
Truth-machine
:c:c?w(1){1}:0