Zetaplex
From Esolang
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.
Contents |
[edit] Specification and Implementation
The current specification, documentation, and implementation can be found at the Authors Site.
[edit] Examples
These are all tested and work on the current implementation. I will also put up explenations later for some of the programs.
[edit] 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 /
[edit] Quine
Quine without using the source reading commands (Qg/QG):
"Sr34SZOsDrFe
[edit] 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
[edit] 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
[edit] 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
[edit] 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
[edit] 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 \ /
[edit] Tic-Tac-Toe game
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

