Talk:Thue-Mirr

From Esolang
Jump to navigation Jump to search

Hello World

I'm still checking and tidying up an interpreter I wrote in Python, but I believe this is a valid Hello World:

                                                                        x                            x      x\
                               /                                                       x               \    \/
                               \x           x                                                                  x\
                                                                                                            /   /
\                                                                                                      \       \  x\\\\\\\\\\\\\y\
 /
         /
\/       \x                      x                                                                  x                            /

The original program fits in a 130 x 8 grid. Positive values are to be interpreted as ASCII / Unicode. Negative numbers can be ignored. After the "Hello, World!\n" output the program goes into a non-terminating decreasing negative sequence. The characters in the lower left corner fling the pointer into negative x and y. More experimentation may give cleaner endings. Ideally I'd like a no-output repeating loop. Salpynx (talk) 07:29, 25 February 2019 (UTC)

Termination

I think there could be a natural ending condition that if no output occurs for some function of the original source grid size cycles, we are assured that no output will ever occur and the interpreter can terminate the program. For a start I was going to try terminating after h * w cycles without output, but maybe it's more? This is not a question of adding an arbitrary end condition to the language spec (it's nice and simple as is!) but determining whether there is a way to know for sure there can be no further output, so interpreters can optimise. Salpynx (talk) 07:29, 25 February 2019 (UTC)

update: This multiplier, if one reliably exists, has to be (approx) greater than or equal to 2 * h * w. Salpynx (talk) 06:23, 26 February 2019 (UTC)

Graphing output

This language is great, graphing pairs of output values gives an idea of the chaos / order of the output. There are some great almost fractal patterns that form, as well as quite ordered series. Here is a "pentagraph":

/xx \
\xxx/

Plot of 270 iterations of output as x,y points:

270 iterations of the petagraph

To make the pentagrams point away from the origin, flip the first line:

/ xx\
\xxx/

Filling in the missing x gives a repeating hexagon pattern, as you would intuitively expect? Salpynx (talk) 06:23, 26 February 2019 (UTC)