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.

ZecZec

From Esolang
Jump to navigation Jump to search
The title of this article is not correct because of technical limitations. The correct title is actually >|<>|<.

>|<>|< is a language made by User:BODOKE2801e here's all the things (n is a number, . is a string, and .- is a boolean, also the amount of dots is the ID of the variable/boolean):

Syntax

Here's the syntax:

Outputters
Code Name Description
(.) Print Prints .
(.<.->) Print Conditional Prints . if .- is true
(.>)> Print and jump Prints . and jumps the next command
(.)<.-> Print and jump conditional Prints . unconditionally and jumps the next command if .- is true
(.<.->>)> Print conditional and jump Prints . if .- is true and jumps to the next command unconditionally
(<.->.>)> Print conditional and jump conditional Prints . and jumps the next command if .- is true
Shifters
Code Name Description
n> Jump n times Skips the next n commands
>> or >| End Ends the program
<n Go back n times Goes back n times
<< Go to the start Goes to the start
n>?<.-> Jump conditional Jumps n times if .- is true
<n?<.-> Go back conditional Goes back n times if .- is true
Comparators
Code Name Description
<.-+.-.> And none
<.-*.-.> Or none
-<.-> Not none
-<.-+.-.> Nand none
-<.-*.-.> Nor none
<.-^.-.> Xor none
-<.-^.-.> Xnor none
>.>|<< Greater Checks if . is greater than the last storage, then grabs the one which is higher (via unicode)
>.<|<< Less Checks if . is less than the last storage, then grabs the one which is lower (via unicode)
<.> Storage Stores . , When the marker has a value and passes through a storage, it will swap the stored thing, even if the storage has nothing
/.=..?/ Equal? Throws -* if its the same, *- else
Misc
Code Name Description
>|< Intake Intakes the input thing, also deletes the held item, even if there's no more input
>/< Special intake Like an intaker that inputs the last one instead of the first one
>>>|<<< Super Intaker Like an intaker that intakes the whole input
><.->< Intake conditional Intakes the input thing if .- is true
/ Escape Escapes a character after it
-* True Boolean
*- False Boolean
|< Last storage Checks the last storage it met, if there's none, it's automatically *-
, Separate Separates stuff
>?< Contain Boolean that throws -* if the marker has a thing
?< Storage Contain Boolean that throws -* if the last storage has a thing
(?<.->(.)(..)) If then else If .- is true gives . , else, .., note that . and .. can be pieces of code, where each comma is escaped, (i.e >|</, >|<)
>.>../...> Convert Turns all instances of . in .. to ...
>/.<>../< Funnel joins . and .. together
>/-/.?=..< Contain? checks if . contains .., throws -* is it does, *- else
>/++/.?=..< Amount contained checks how many times . contains ..
(-/.) var variable .
.= (-/..) set var sets variable .. to .
.+ (-/..) change var changes variable .. by ., note that it is in base of the highest character + 1. (but if it's only numbers it's always base 10)
(?< Marker contains outputs whatever the marker contains,
°./,../,...- list produces a list, note that it's length can be customized
..++ (-/.) Push appends .. to var ., ant turns var . to a list if isn't one
-< (-/.) Roll removes the first item from the list and outputs the thing
>- (-/.) Pop removes the last item from the list and outputs the thing
..>+ (-/.) Pull Like append, but inserts in the last one
.=/../... regex produces a list of regex matches, ... are the flags
|n-.| Select nth Picks the nth item, else, picks the nth letter
|.+/+..| Add adds . and .. together in base of the highest character + 1, then to base 10 (but if it's only numbers it's always base 10)
|.-/-..| Subtract subtracts . and .. together in base of the highest character + 1, then to base 10 (but if it's only numbers it's always base 10)
|.*/*..| Multiply Multiplies . and .. together in base of the highest character + 1, then to base 10 (but if it's only numbers it's always base 10)
|.|/|..| Divide Divide . and .. together in base of the highest character + 1, then to base 10 (but if it's only numbers it's always base 10)
).( Round down Rounds . down
].[ Antiround Removes the integer part of .
|.| Absolute Removes the sign of .

Templates

here you can add templates to make people's lives easier

Divisibility

/|.|/|..|=)|.|/|..|(?/

Alternate

/|||.|/|..|-/-)|.|/|..|(|*/*..|=0?/

Modulo

|||.|/|..|-/-)|.|/|..|(|*/*..|

Notes

You can use newlines instead of commas if its too long

It takes last to first

Still not turing complete, at the talk page, request ideas and i will add more syntax to make it turing complete

it looks like bf

Any notes outside any piece of code and without / are fine, example:

(Not a note), A real, piece of code that works even with 4-7*+223+- is fine

Any output not printed is attempted to run as >|<>|< code

Examples

Hello, world!

(Hello/, world!)

Infinite loop

Prints "Hello, world!" forever.

(Hello/, world!), << 

Input check

Throws "True" if there's something in the input, else, "False"

>|<, ((?<>?<>(True)(False)))

If the input has "", it gives

False

Else, if it has anything, like "Foo", it gives

True

last input

Outputs the last input

>|<, <>, <1?<?<>, (|<)

If the input has "000, 001, 010, 011, 100, 101, 110, 111", it gives

000

Or a much simpler one, "Foo, Bar" gives

Foo

Fibonacci numbers

Outputs the fibonacci numbers

(1), (1), 1= (-/a), 1= (-/b), (-/a)+ (-/c), (-/b)+ (-/c), ((-/c)), (-/b)= (-/a), (-/c)= (-/b), 0= (-/c), <6

Output: "1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155..."

Project euler 2

Complemet for infinite loop

(1), (1), 1= (-/a), 1= (-/b), (-/a)+ (-/c), (-/b)+ (-/c), (?</|(-/c)|/|2|=)|(-/c)|/|2|(?/>(((-/c)))()), (-/b)= (-/a), (-/c)= (-/b), 0= (-/c), <6

Truth-machine

Outputs 1 infinitely when the input is 1

>|<, ((?<), <1?<(?<=1?/>/

FizzBuzz

Outputs "Fizz" if divisible by 3, "Buzz" if divisible by 5, "FizzBuzz" when both, the number else

0= (-/a), (-/a)= (-/b), ((-/b))  1+ (-/a),  (/?</|(-/a)|/|15|=)|(-/a)|/|15|(?>(FizzBuzz= (-/b)/, <2)()), (/?</|(-/a)|/|5|=)|(-/a)|/|5|(?>(Buzz= (-/b)/, <3)())
(/?</|(-/a)|/|3|=)|(-/a)|/|3|(?>(Fizz= (-/b)/, <4)()), (-/a)= (-/b), <6

Self Interpreter

Interprets itself

>>>|<<<, <>, |<,

XKCD Random Number

int getRandomNumber
{
  (4) chosen by fair dice roll
      guaranteed to be random
}

minimalist

(4)

Binary to unary conversion

converts a binary form to unary form

>|<, (?<= (-/a), >1>(-/a)/0*>= (-/a), >*0>(-/a)/0**>= (-/a), >0>(-/a)/>= (-/a), ((-/a)), <<

Trivia

>|<>|< can be turned to >|<>|< code which is two intakes

>|<>|< is based off the game Human Resource Machine and 7 Billion Humans, so it takes the input front to back, meaning if the input is "A, B", and you want to output "B", the solution is the following code

>|<, <>, >|<, (|<)