; ;;
- Not to be confused with ;;;.
;;; (also ;`!;`;;, //\n//, 2D///,) is an esolang similar to /// with the only difference being it's 2d.
Program flow
the IP starts at (0,0), with its direction right at first. It is initially at the print stage.
There are "a few" more metacharacters than ///:\
!/\^v<>is same as in ><>\in the original /// is repllaced by`and skips the next character (ie```/`\`!@<prints`/\!once)/in the original /// is repllaced by;(space) is now a no-op@halts the whole program#prints a newline and isn't treated as a normal character- the code wraps around in 4 directions
Also, the substitution now does at a per-line (per-column) basis and only substitutes in the area of the ip direction, for example, if the IP is at the square I, its direction right, and the pattern string is dollar,replacement string is yuand, then
ddollar dIollar dollar dolladollarollar ddiollarollar dodollarolladdollarollar
will be replaced with
ddollardIollar dollar dollayuanyuand ddiollarollar
doyuandolladyuanyuand
because the "replacement space" is marked in "R" as follows:
ddRRRRR dIRRRRR doRRRRRRRRRRRRRRRRRRRRR ddRRRRRRRRRRR doRRRRRRRRRRRRRRRRRRRRRRRR
and if the ip direction is up, and the pattern string is abab,replacement string is baXab then
baabbba abbbabb babbbba bbabaab aaaabba bbbbaIb aabaaaa
will be replaced with
baabbbaabbbabb babbXba bXabaaX aaaabba bbbbbIb abbaaab
a a a
the replacement space is as follows:
RRRRRRR RRRRRRR RRRRRRR RRRRRRR RRRRRRR bbbbaIb aabaaaa
and because the "abab" from (6,6) to (6,3) is not completely in the replacement space, it don't get replaced.
Computational class
Obviously it's a "superset" of /// with only /\ (with \/ -> `;). so it is Turing-complete
Examples
a "yes" program
y#
Hello, World!
Hello,` World`!@
looping counter
>#!v ?$ !!!!!! !!!!!!!!! v ^ >;?$;AB; ;BA;B; ;A;*; ;B;*; ;`!`!;`#`!; ^ ?$ ;$?;*; ;!`#`;!`!`;<
This example uses 2d-nesss of the language. Untested.
Implementations
- This is still a work in progress. It may be changed in the future.