This outputs a rule 110 triangle and crashes after 100 iterations
/from 1 to 7 after pushing:
#1V #2V (#V:)
/colors:
#^~~(#V=DEC)^V~:[/=/]
/memory:
&[23][34][77]
/show
(77,a,77)
{[01] >>> 0 1 0 1 7 5 2 4 2 3 1 2
[==] <<< 6 4 5 3 2 %%%%%%%%%%%%%%
<<5 >>> 2 3 4 5 1 2 4}
This reads stdin until EOF
[&&]
This repeatedly checks if counter (whatever that is) is divisible by either 5 or 3 in an infinite loop.
($)/([3][5][0]) 0 000 =
An alternate and more likely interpretation of the original description would say that
it independantly checks for % 5 == 0
and % 3 == 0
, making it have two outputs (the choice of the numbers 3 and 5 supports this, since then it becomes FizzBuzz except there's no output)
A hello world
104 101 108 108 111 44 32 119 111 114 108 100 33 ;;;;;;;;;;;;;
The bytes might be in the wrong order this is very clear since in other text programs we have in reverse order
Checks if 3 is divisible by 3.
(3)/([][][])
Discarded
This program is believed to be and unfinished version of S2 that likely doesn't work
[&&]||WSA-aø-------------------------------------------------------------
---------------------æpå<å<++-------------<.+----------------------------
---------------------------------øa[ø]------!<>^^---[^]!!!!$|---|´´´
...≠<!><!>!<>+·+·+·*#@(@):[ø]~<>!´<!||+++<>!{"%}
The original description is as follows:
this code should be a truth machine if i used
ø
and!
right way.
i hate myself for creating the data pointer and indexable memory, since now
the code looks like this bullshit!!!
>[#∩∅]<#V∩1(#∩V)∅:∅[∅]
is a tape setup for some turing machine.
The note says that is uses substacks and "subsets"
[∅∩[0∩0]]
This program is called "null". It likely creates an empty object of some kind
[&&]-()/(2){101 117 114 84 4(;) 68 000 =} 97 101 115 108 97 70 5(;)±
checks if user input is odd or not
(λ)/(x)?[Aₙ.x](P)
creates a function P that will take a input A and a input x and will output a function that will always return x
[&&]-(){"%}%
a optimized version of the truth-machine
Some notes found say:
- the memory where in hex.
- In bring to another time matterd. A lot.
- &'s very used for a lot of things.
- Numbers has other meaning's than just numbers.
A TODO list says:
- since the color section is only the push form 1 to 7 then ill just delete dat comment
- see if any brackets have been done wrong
A notes.txt
says:
- information:
- the language is called "bring to another"
- lambda calculus!!!
- goto? yes! maybe ill use 000
- loops are just brainfuck loops idk
- try to describe it. i swear i need to do this before i forget it
note: i did forget it. i shouldve done that:D
A weird_features.txt
says:
- it has substacks now. yaay
- substacks can hold instructions
a logo:
%
s in S0
-
and +
are, they are not arithmetic operations<
and >
do not cancel eachother/
is a commentn 000 =
acts as goto line n
000= whatever
<number> push decimal number onto the stack
; pop [n] and output as ASCII
% pop [n] and output as a number
n(E) where n is a number causes E to be repeated n times
/colors:
comment is erroneous, and the following line is actually part of the previous step (A5)[...]
makes some sort of sub-stack{E} some sort of loop (likely bf-style)
$ push the number of times this has been encountered
a b = set address b to value a within indexable memory
[E] create substack of some sort
" duplicate top of stack
(E) appears to be related to function application and to binding variables
0000 Holds the instruction pointer
[...]
creates a sub-stack
[...]
is related to memory
/memory
&
is related to memory
/memory
0 000 =
&[...]
is a special syntax unrelated to [...]
[a][b][c]
is unrelated to [...]
DEC
decrements
V
which is related to memory in some way{E}
is brainfuck loop
(...)
is a function application
n(E)
= λE.n E
where n
is a church numeral where the function we apply n
times is taken as first argument
[&&]-()/(2){101 117 114 84 4(;) 68 000 =} 97 101 115 108 97 70 5(;)±
This checks if an input is odd or even and prints "true" or "false" in response
(λ)/(x)?[Aₙ.x](P)
This is supposed to be equivalent to a K combinator, (λxλA.x
), bound to P
per the description
The first program, according to what we know, can be broken down as follows:
[&&] Take the input
- <unknown>
() <unknown>
/ <unknown>
(2) <unknown>
{ Jump past block if nonzero
... Load ASCII "True" onto stack
4 Load length of string (4) onto stack
(...) Apply to 4, which causes repetition
; Put character from stack
68 Load pointer 0068 (one past EOP)
000 Load address 0000 (IP).
= Jumps to index 68, which is the ± or past EOF
-> The effect is halting the program
} End loop block
(ditto)
± <unknown>
(A)/(B)
seems to be it's own structure unrelated to (E)
. /
has only ever appeared alone or in that context, and (E)
being a function application, should be invalid at the start of the program.
The -
is responsible for some sort of input processing.
The ()/(2)
causes a modulus by 2
And the rest is explained.
However (A)/(B)
has to be a pretty generic structure and not specifically modulus, since it also shows up in the K combinator:
(λ)/(x)?[Aₙ.x](P)
Fortunately it is known that P
, x
, and a
are names here.
If (E)
is an application, then at the surface it looks like the prior code creates a function that binds the a function to the argument. It would seem logical if λ
was responsible for that, but that is a guess.
?
does not appear anywhere else. .
appears in only one other program.
It is also worth bringing
($)/([3][5][0]) 0 000 =
into the analysis, as it also is related to modulus and has this structure