Zetaplex

From Esolang
Jump to: navigation, search

Zetaplex, created by poiuy_qwert in 2007 is another varient of Gammaplex created by Lode Vandevenne. The two main differences between the languages are that commands are made up of a pair of characters, and the memory is an infinite tape of infinite stacks. This language was designed to be very functional.

Specification and Implementation[edit]

The current specification, documentation, and implementation can be found at the Author's Site.

Examples[edit]

These are all tested and work on the current implementation. I will also put up explenations later for some of the programs.

Hello, World![edit]

Outputs "Hello, World!" to the screen.

"Hello, World!"SrOsDrFe

or

<eFrDoS"Hello, World"

or

\      / #111#87\ #        #         ######
3      4 #        #        #        #      #
3      1 #        #        #        #      #
#      1 #        #        #        #      #
1####### /44#23#/ #        #        #      #
0      8 #        #        #        #      #
0      0 1        #        #        #      #
#      1 1        #        #        #      #
\      / \1#108sy 101#72Os DrFe####  ######

or

"Hell"\
/d!"S\o
"/rFer,
l\DsO/"
\"roW /

Quine[edit]

Quine without using the source reading commands (Qg/QG):

"Sr34SZOsDrFe

Fibonacci sequence[edit]

Generates N numbers in the Fibonacci Sequence and writes them to the file "fib.txt"

s+1sys-"Generate amount: "SrOSDr3INsy1sfFG\2sfM->syF?\"fib.txt"SrfWF!\s+>syF?\fCFe
                                          \                          >Fe
                                                                        /    \MIfn10fc
                                                /    \s+swM+s-Md

99 Bottles of Beer[edit]

Writes the 99 bottles of beer song to the file "bottles.txt".

9<nF" bottles of beer on the wall, "+sDm
<nFZSrS01rS" bottles of beer." "Take one down and pass it around, "+s
<nFrS01rS" bottles of beer on the wall."+s
<nF"bottles.txt"
fW F!\Fn
0sSFn\Fe  /s+'slrs+'s1lR1sS\                                          /Fn
4sYMIfn1F=/s+              >Scfss-MIfn2s*Scfs0sSMIMdfn3s*Scfs0sSMdsyF?/fCFe
s+'slr

Befunge interpreter[edit]

This is a fully functional Befunge interpreter written in Zetaplex! Works with current implementation.

"reterpretnI 39-egnufeB"DTFn
>" :emaneliF margorP"OSDrs+"fb."8ISSZDcfRF!\Drs-sZ8sS1s+>frsyF!\sy13F=\            sy10F=\\
\                                      Zs-s/            ^           ds/+s<lhas/GFfslHasds/
>saHlF=,\ SrSZss9F=\s-Fb            bFlhas/GFfslHasdsCfh h-Mss8/         \    /
\     23/          \"txt.tuodts"fWF!,FnFe \Fp           \             <                   /
8sSHd0F=\Hd1F=\   Hd2F=\Mdsy0sfFG\    >Fn
\       \sfMis yHlMiFG\    >sfFb \sdHh/
                      \ sd1/sd1\   /sdHl\8ssM-hh
v             \MisyHhMi  FG/   >
v                      \sfMdsy0sfFG/    >sf
 0hj5#0Fg
\HjL!F?,Fpsfsyhxsfsy8M+sSHxlgHsF?,Fnsy'"F=\1sc>sdFp
sy47FG,Fnsy57sf               FG\Fn       \0hs/
sy'+                         F=\ Fn
sy'-                        F=\  Fn
sy'*                       F=\   Fn
sy47                      F=\    Fn
sy'%                     F=\     Fn
sy'!                    F=\      Fn
sy'`                   F=\       Fn
sy62                  F=\        Fn
sy60                 F=\         Fn
sy94                F=\          Fn
sy118              F=\           Fn
sy'?              F=\            Fn
sy'_             F=\             Fn
sy'|            F=\              Fn
sy'"           F=\               Fn
sy':          F=\                Fn
sy92         F=\                 Fn
sy'$        F=\                  Fn
sy'.       F=\                   Fn
sy',      F=\                    Fn
sy'#     F=\                     Fn
sy'g    F=\                      Fn
sy'p   F=\                       Fn
sy'&  F=\                        Fn
sy'~ F=\                         Fn 
sy'@F=\                          sdFn
\                               \48sfM-1scsd
v                              \sd1sSM+
v                             \sd1sSsfM-
v                            \sd1sSM*
v                           \sd1sSsfM_
v                          \sd1sSsfM%
v                         \sd1sSL!
v                        \sd1sSsfFG,1,0#
v                       \sd0hd
v                      \sd2hd
v                     \sd3hd
v                    \sd1hd
v                   \sd3#0MRhd
                   \sd1sS F?\0\
                  \sd1sSF?\1\2v
v                \sd1hsFb \3> >hd
v               \sd1sSsy
v              \sd1sSsf
v             \sd1sSsd
v            \sd1sSfn
v           \sd1sSfc
v          \sd1hjFb       /      >      >      >0#
v         \sd1sShyhx-1HyFG/HyHhFG/-1HxFG/HxHlFG/Hy9M+sSHxMilgZZ1scsd
v        \sd1sShyhxhnHy0FG,FbHhMdHyFG,FbHx0FG,FbHlMdHxFG,FbHy9M+sSHnHxMils
v       \sd0sS" :rebmun a tupnI"OSDrs+InDcDrs-sZ
v      \sd0sS" :retcarahc a tupnI"OSDrs+IcDcDrs-sZ
\5#0Fg\Fe

Brainfuck interpreter[edit]

This is a brainfuck interpreter written in Zetaplex! The original version was actually the first program writen in Zetaplex, but it was rewritten because of changes in the specification.

"txt.tuodts"fWMiF?,Fe"reterpretnI kcufniarB"DTFn
>" :emaneliF margorP"OSs+"b."Dr8ISSZDcfRF!\s-sZ"...eliF gnidaeR"OsDrs-"><+-.,[]"s-Fn
\                                     Zs-s/
>frsyF!\-1scs+liF?\s-sd>
       \fCsdSrSZFn\s-  /
>HrL!F?,Fn1hrDc"...margorP gninnuR"OsDrFn
 -2sSsaHxMisyhxFG\Dc"!etelpmoC margorP"OsDrFe
 sy62      F=\Fn \Hxlg
 sy60     F=\ Fn
 sy'+    F=\  Fn
 sy'-   F=\   Fn
 sy'.  F=\    Fn
 sy', F=\     Fn
 sy'[F=\      Fn
      \
^            \sds--4scsd
^           \sds-s--3scsd
^          \sds-Mi
^         \sds-Md
^        \sds-syfc
^       \sds-sd3s*Dc" :tupnI"OSDrIcDcDr-3scsZhr
^      \sdHnsyhtMihns-syL!F?,Fbs+>saHxMisyhxFG\Dc"!etelpmoC margorP"OsDrFe
                               sd/            \Hxlgsy'[F=\  sy']F=\
^                                                        \HnMihnFp\HnMdsyhnHtF=,Fpsd
^     \sdHnsyF?,FbMdht>HxMdsyhxlgsy'[F=\                   sy']F=\Fn
                    sd/                \HnMdsyhnHtF=,FbsdHxMdhxFp\HnMihn

Brainfuck to Zetaplex compiler[edit]

This converts Brainfuck code into Zetaplex code.

"atez.delipmoC"fWMiF?,Fe3sSsZ120#300DR996#0DG998sy3DG999#7DG900#6DGsS255sysy"relipmoC xelpateZ oT kcufniarB"DTFn
991sS30sys+68#269s+33sys+65#0s+150#78s+Fn
v                                                                                     /                        \
>" :emaneliF margorP"OSs+"b."Dr8ISSZDcfRF!\s-sZ"...eliF gnidaeR"OsDr1001sS"><+-.,[]"s->frsyF!\1001scs+liF?\s-sd^
\                                     Zs-s/                                                  \fCsdsahcFn  \s-  /
0sS"eFCf"Fn
>999sS991#0DG992#1DGDb1#994sSsdHcHxM_233M*33M+993#0DG994#1DGDb"detelpmoC %"HcHxM_100M*MISSSZSySshwhhs+sw2HhM_sfM-sf2HwM_sfM-995#0DGs-Oss+2sDDr999sSsZFn
 1000sSHxMihxHcHxFG,\ HxlgDcFn
 Fn                 \HlsS>ssF?\"Ss000001eF,?FiMWf""stdout.txt"">"SZfs              \
 sy62      F=\Fn              \HlF?,\ "                             v"SZfsHlMnssF=,v >fCFe
 sy60     F=\ Fn         \                                                   -scf01/
 sy'+    F=\  Fn                    \                                                /
 sy'-   F=\   Fn
 sy'.  F=\    Fn
 sy', F=\     Fn
 sy'[F=\      Fn
       \
                           \    /HlF?,Fn32syHlMnssF=,\ Fn
^            \sdHs2M+hsHlsS>ssF?/'+'s                >s-Fp
                          \    /HlF?,Fn32syHlMnssF=,\ Fn
^           \sdHs2M+hsHlsS>ssF?/'-'s                >s-Fp
                         \    /HlF?,Fn32syHlMnssF=,\ Fn
^          \sdHs2M+hsHlsS>ssF?/'i'M                >s-Fp
                        \    /HlF?,Fn32syHlMnssF=,\ Fn
^         \sdHs2M+hsHlsS>ssF?/'d'M                >s-Fp
                       \    /HlF?,Fn32#3sYHlMnssF=,\ Fn
^        \sdHs4M+hsHlsS>ssF?/"cfys"SZ              >s-Fp
                       \    /HlF?,Fn32#37sYHlMnss                     F=,\ Fn
^       \sdHs38M+hsHlsS>ssF?/"SssHZscssHrDcDcIrDSO""Input: ""Ss0shssds"SZ>s-Fp
                                 /"       /"SZ         \
                                          /"\       "SZv
                          /ssHnF=/HnMnssF=/"        "SZv
^      \sdHs8M+hsHlsS>ssF?/"\?F!Lys>"SZ                >HlMnssF=,\ HnMdhn
                     \                                         -s/
                                             /32saMdHsM-MdsY32#92         \
                                                      /32saMdHsM-MdsY47#32v
                       /    \         /ssHnF=/HnMnssF=/32sy               v
^     \sdHnMisyhnHlsfFG/Hnhl>HlsS>ssF?/62#47                              >HlMnssF=,\ Hs2M+hs
                                 \                                                -s/

An example is the basic Brainfuck cat program

,[.,]

converted to Zetaplex:

v                                                                   /                                                 \ 
>"txt.tuodts"fWMiF?,Fe100000sSsdsshs0sS" :tupnI"OSDrIcDcDrHsscsZHssS>syL!F?\syfcsdsshs0sS" :tupnI"OSDrIcDcDrHsscsZHssS/>fCFe
v                                                                          \                                           /

Tic-Tac-Toe game[edit]

Tictactoe.PNG

This is a basic tic-tac-toe game (does not work with the current public interpreter, but the author will release the updated interpreter soon):

"eot-cat-ciT"DT194syDR-1#64s+195#130Dbsfs-sfDbDr5sS31'AhT8sS'@8sYyny+s+Fn
"([^@])..\1..\1"Srs+"([^@])...\1...\1|..([^@]).\2.\2.."Srs+"([^@])\1\1......|...([^@])\2\2...|......([^@])\3\3"Sr8sSFn
>tsF?\2sD
     \2sDtc65sfM_MIsf65sfM_MIhXhYHTHY3M*HXM+Misy2M+lg'@F=\2sDFp
 HT'AF=\                          \                      \ls
       \0sSsZHY65M*MiHX65M*Mis+Fn \0sSsZHY65M*32M+HX65M*32M+Dp'AhT\
 sZHY65M*62M+HX65M*62M+Dl61sfM-s-61M+Dl'BhT                       >DrFn
 8sSSys+8Scs-RmF?\Sy10sS8Sc8sSRmF?\Sy11sS8Sc8sSRmF?\Fn
^                >                >                >Fn
 ts2sDF?\
/       \ycDr8sSsZ'@8sY

See Also[edit]