We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Polynomix
(Redirected from Polymorphix)
- Author's note: I don't think Polynomix is esoteric, although its syntax looks weird. I admit, though, reading the code can be very difficult for beginners.
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
| Designed by | User:I am islptng |
|---|---|
| Appeared in | 2026 |
| Computational class | Turing-complete |
| Reference implementation | Python |
| Influenced by | APL SletScript Python |
| File extension(s) | .plx |
Polynomix is a computer language designed by User:I am islptng.
It combines APL's array-oriented programming paradigm with Python's dynamic typing, along with a new design of syntax. There's also inspiration from C++ and Haskell.
Home Page (Requires Pyodide, be patient the first time loading)
Syntax
For the symbol reference dictionary, see Polynomix/Symbols.
Examples
Hello World
`Hello, world!'+["\n]>.
Truth-machine
\;<.>.#\a
a="1@{a>.}
Factorial
(x>x<2?(1x-1\.*x)) # \fact 10 fact! $$ 3628800
FizzBuzz
1#\x x<101@{x%\[15 5 3 1]%0/0/!![`FizzBuzz'`Buzz'`Fizz'x]>.;"\n>.;x#+1}\;
brainfuck interpreter
$$ brainfuck.plx - Brainfuck Interpreter in Polynomix
$$ islptng, 30 June 2026
300 # \TAPEWRAP
(src>
[] # \brackets
src # \tmp
src ^ \(i>
i#(\index, \char)
char="[?(
brackets #+ [index]
char="]{
brackets / \1 #\matching
brackets #/(\;,\1)
tmp #/(matching index-matching)
tmp #/(index matching-index)
})
)!;
[0] * TAPEWRAP # \tape
0 # \ptr
0 # \ip
tmp < # \len
ip < len @ {
tmp / ip # \cmd
ip #+ 1
cmd & $+$ ?(
cmd < 0 ?(
tape / ptr = 0 -?(ip #+ cmd)
tape / ptr = 0 ?(ip #+ cmd)
)
cmd = "+ tape #/((+1%256) ptr)
cmd = "- tape #/((-1%256) ptr)
cmd = "< ptr #(- 1 % TAPEWRAP)! ;
cmd = "> ptr #(+ 1 % TAPEWRAP)! ;
cmd = ", tape /(ptr \;<.<)
cmd = ". tape / ptr ~ >. ;
)
}
\;) # \brainfuck
`+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+.' brainfuck!
Conway's Game of Life
Supports any Life-like rules. Simulation on a torus whose size is specified in the RLE header.
(g r>g&\[\1 0 1]~.(x y>x\\+\\y)\(w>w&\[\1 0 1]~.(x y>x\+\y))!\\+\\(g\\*8)\\(%!!r|/!!(0,1))!)#\Step(\%!!`012345678'&([[]]\;)\=#[\;\b\;\s]s\+9+b)#\Pr(\\(|/!!(".,"#))!\|.!!" |.!!"\n=>.;"\n,*2>.;\;)#\PrintGrid(s>s\(%!!`0123456789'|<)!+.%\(i>i-=0?(1,0,*(i<)i,))!=%#([\cl \;!!],\ch)cl?([][`1'])+(s*.ch)|2\*(n pt>pt#\[H T!!]H,*(n\^.^.)+T)=)#\Ep(s wd ht>s/(\;,\1)&(`$'\;)\\(="o<)!\^(wd 0)^(ht[0]*wd))#\Fg(s>s&(["\n]1)#\[hr bd]hr&(`, '\;)\&(` = '1)\/1#\[xs ys r][xs\^.^.;ys\^.^.;r bd*(["\n][])])#\Ph(s>Ph#;Ep#;Fg#;Pr#;s Ph!#\[x y r bd]bd Ep!Fg!(x y),(r Pr!))#\ParseRLE(lr>[]#\b[]#\s lr\(i>i<9?(b#+[i] s#+[i-9]))!;["B b\*.;"/"S s\*.]==)#\Rr(g>g\(/|.(=0)/\/!!`bo')!&.|!|.!!"$=+./%\~=|84\(&.(=1-)\*.=)!|.!!"\n=+`!')#\Cb(g r>Rr#;Cb#;`x = '+(g/0<*.)+`, y = '+(g<*.)+`, rule = '+(r Rr!)+["\n]+(g Cb!))#\GenerateRLE
Usage:
$$ Load RLE `x = 5, y = 5, rule = B3/S23 $3bo$bobo$2b2o!' ParseRLE! #\(grid, rule) $$ Evolve grid Step! rule #\grid2 $$ See the new grid grid2 PrintGrid!; $$ Save as RLE grid2 GenerateRLE! rule >.;\;
Number theory tools
$$ Prime (http://mathworld.wolfram.com/PrimeNumber.html)
(~.-=[1])#\PrimeQ
$$ List of positive divisors (http://mathworld.wolfram.com/Divisor.html)
(x>x+1=\|x%x)#\Divisors
$$ Repdigit (http://mathworld.wolfram.com/Repdigit.html)
(a b>a+.b+.-<=1)#\RepdigitQ
$$ Palindromic (http://mathworld.wolfram.com/PalindromicNumber.html)
(a b>a+.b{/=;.})#\PalindromeQ
$$ Little Omega (http://mathworld.wolfram.com/PrimeFactor.html)
(~.-<)#\PrimeNu
$$ Big Omega (http://mathworld.wolfram.com/PrimeFactor.html)
(~.-|.)#\PrimeOmega
$$ Semiprime (http://mathworld.wolfram.com/Semiprime.html)
(~.-|.=2)#\SemiprimeQ
$$ Harshad (http://mathworld.wolfram.com/HarshadNumber.html)
(a b>a%(a+.b|.)=0)#\HarshadQ
$$ Input n, print (n-1) th cake number (http://www.numbersaplenty.com/set/cake_number/)
(+.!![6/;2/-;4/3 0])#\Cake
$$ Hoax (http://mathworld.wolfram.com/HoaxNumber.html)
(a b>(a+.b|.)=(a~.<\+.b=|.))#\HoaxQ
$$ Esthetic (http://www.numbersaplenty.com/set/esthetic_number/)
(a b>a+.b|(2{-*}!)\=1~.)#\EstheticQ
