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

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

Examples

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

Hello, World!

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

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

"Sr34SZOsDrFe

Fibonacci sequence

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

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

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

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

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

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