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.

Recorder

From Esolang
Jump to navigation Jump to search

Recorder is a programming language i made that uses extraction

Basic Functions

Comment

#hello im a comment
#see
#its cool

Text

textisdefinedwithoutquotes
"or with quotes to stop variables to get refered"

Box

a = text
a #text

Recorder

te(xt) : ( ) = a
a #xt
an(ychars] : ( ] = b
b #ychars

Tape

te(xt) : ( ) = a #a is a box btw
a #xt, a contains the tape from recording the brackets

Functions

same a:
  return a
same "text" #"text"

Logic gates

You can define logic gates in it

true = "!false.&b."
false = "!true.&false."
get a b c:
  c : a b = o
  return o
not a:
  return get ! . a
and a b:
  return get & . a
not true #false
and true true #true

Optimizations

Chain use optimization

This is called chain use because it uses symbols as closing bracket and opening bracket to save space
Right now, normally, you only have 2n delimiter efficiency, for n items wanted separated, you need 2n symbols to separate them

example = "<hello>(yeah)[seven]" #6 symbols for 3 items

If you want less delimiters, you can make it like this and have n+1 delimiter efficiency

example = "<hello(yeah[seven}" #4 symbols for 3 items

and to select items, just do

example : < ( = item1
example : ( [ = item2
example : [ } = item3

You probably get the idea, this makes it so you can use less symbols so you can shorten code (in some cases when you have so many delimiters that you need longer than 1 char delimiters)

Double use optimization

This is called double use because it uses the same thing twice and allows it to be selected easily

example = "<a<(b([c["

Yes, that in fact counts as 3 delimiters, so n delimiter efficiency

example : < < = item1
example : ( ( = item2
example : [ [ = item3

Insert Code Below

Write code below here to make a turing machine in Recorder (because im to lazy to)