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.

IPALang

From Esolang
Jump to navigation Jump to search
Not to be confused with IPAlang.

IPALang is yet another International Phonetic Alphabet esolang, made by User:Europe2048. It is a cell-based language.

Commands

Plosives - Cell movement

p - Move the pointer up (+Y)
b - Move the pointer down (-Y)
t - Move the pointer left (-X)
d - Move the pointer right (+X)
ʈ - Enter the 4th dimension
ɖ - Leave the 4th dimension
c - brainfuck mode on
ɟ - NOP
k - Move the pointer to the front (3D, +Z)
g - Move the pointer to the back (3D, -Z)
q - brainfuck mode off
ɢ - NOP

Nasals - Memory cell control

m - Increment the current memory cell
> ma - by 1
> mɑ - by 2
> me - by 3
> mə - by 4
> mi - by 5
> mɪ - by 6
> mo - by 7
> mu - by 8
> mʊ - by 9
ɱ - Increment the current memory cell (Big numbers)
> ɱa - by 10
> ɱɑ - by 20
> ɱe - by 30
> ɱə - by 50
> ɱi - by 69
> ɱɪ - by 100
> ɱo - by 200
> ɱu - by 500
> ɱʊ - by 1000
n - Decrement the current memory cell (conversions same as m)
ɳ - Decrement the current memory cell (Conversions same as ɱ)
ɲ - Decrement the current memory cell (Conversions same as θ) 
ŋ - Decrement the current memory cell (Conversions same as ð)
ɴ - Reset/Divide the current memory cell
> ɴə - Reset
> ɴa - Divide by 100
> ɴɑ - Divide by 50
> ɴe - Divide by 20
> ɴi - Divide by 10
> ɴɪ - Divide by 5
> ɴo - Divide by 3
> ɴɔ - Square the current memory cell
> ɴu - Divide by 2
> ɴʊ - Divide by 3/2
> ɴy - Divide by 4/3
> ʔ adds these quotients. Quotient for resetting is infinity.

Trills, Tap/Flaps, Fricatives, Lateral Fricatives - Others

ʙ - NOP
r - NOP
ʀ - NOP
ⱱ - NOP
ɾ - NOP
ɸ - Set the current memory cell to a specific number (see approximants, note: e = ʟɑ). Isn't affected by vowels, only by the next syllable. Executes the next command when it is written instead of a number.
β - Multiply the current memory cell (conversion same as ɴ, values are multiplied and reset is times 1000)
f - rickroll
v - jump to a command
θ - Increment the current memory cell (Decimals)
> θa - by 0.1
> θɑ - by 0.2
> θe - by 0.3
> θə - by 0.4
> θi - by 0.5
> θɪ - by 0.6
> θo - by 0.7
> θu - by 0.8
> θʊ - by 0.9
ð - Increment the current memory cell (More decimals)
> ða - by 0.001
> ðɑ - by 0.002
> ðe - by 0.005
> ðə - by 0.0075
> ði - by 0.01
> ðɪ - by 0.02
> ðo - by 0.035
> ðu - by 0.5
> ðʊ - by 0.8
s - Output the current memory cell as number
z - Output the current memory cell as a string
ʃ - Output the current memory cell as Unicode
ʒ - Output the current memory cell as UTF-8 (converted to base 256)
ʂ - Input a number and store it in the current memory cell
ʐ - Input a ASCII and store it in the current memory cell
ç - Input a Unicode and store it in the current memory cell
ʝ - Loops
> ʝa - [ in Brainfuck
> ʝʌ - ] in Brainfuck
> ʝe - Opening infinite loop
> ʝə - Closing infinite loop
x - Input a UTF-8 (hex) and store it in the current memory cell
ɣ - Input a UTF-8 (seperated by spaces) and store it in the current memory cell
χ - Input a UTF-8 (each byte converted to characters) and store it in the current memory cell
ʁ - Input a UTF-8 (each 2 bytes converted to characters) and store it in the current memory cell
ħ - Input a UTF-8 (decimal, leading zeroes) and store it in the current memory cell
ʕ - Input a UTF-8 (decimal, leading zeroes, seperated by spaces) and store it in the current memory cell
h - Input a UTF-8 (decimal, no leading zeroes, seperated by spaces) and store it in the current memory cell
ɦ - Input a string and store it in the current memory cell as UTF-8
ɬ - NOP
ɮ - zundokokiyoshi

Approximants - Numbers

ʋ - Small integers
> ʋə - 0
> ʋa - 1
> ʋɑ - 2
> ʋe - 3
> ʋi - 4
> ʋɪ - 5
> ʋo - 6
> ʋu - 7
> ʋʊ - 8
> ʋy - 9
ɹ - Large integers
> ɹə - 10
> ɹa - 12
> ɹɑ - 25
> ɹɒ - 42
> ɹe - 50
> ɹɘ - 69
> ɹi - 80
> ɹɪ - 100
> ɹo - 1000
> ɹɔ - 65536
> ɹu - 1000000
> ɹʊ - 16777216
> ɹʌ - 1000000000
> ɹy - 2147483647
ɻ - Small decimals
> ɻa - 0.0000000004656
> ɻɒ - 0.000000001
> ɻɑ - 0.000001
> ɻæ - 0.0000152587891
> ɻe - 0.0001
> ɻə - 0.001
> ɻi - 0.005
> ɻɪ - 0.01
> ɻo - 0.02
> ɻu - 0.05
> ɻʊ - 0.08
j - Large decimals
> ja - 0.1
> jɑ - 0.2
> je - 0.3
> jə - 0.4
> ji - 0.5
> jɪ - 0.6
> jo - 0.7
> ju - 0.8
> jʊ - 0.9
ɰ - Other
> ɰa - negative marker
> ɰɑ - + (numbers-only)
> ɰe - − (numbers-only)
> ɰə - × (numbers-only)
> ɰi - ÷ (numbers-only)
> ɰɪ - 69420
> ɰo - pi
> ɰu - Infinity
> ɰʊ - NaN

Lateral Approximmants

l - Basic operators
> la - Addition
> le - Subtraction
> li - Multiplication
> lo - Division
> lu - Modulo
ɭ - More well-known operators
> ɭa - Exponentiation
> ɭe - Square root
> ɭi - nth root
> ɭo - log
> ɭu - ln
ʎ - Trigonometric functions
> ʎa - sin
> ʎɑ - sin^-1
> ʎe - sinh
> ʎə - cos
> ʎi - cos^-1
> ʎɪ - cosh
> ʎo - tan
> ʎu - tan^-1
> ʎʊ - tanh
ʟ - Lesser-known operators
> ʟa - Factorial
> ʟɑ - e (number)
> ʟe - nCr
> ʟə - nPr
> ʟi - cos^-1
> ʟɪ - cosh
> ʟo - to degrees
> ʟu - to radians
> ʟʊ - to gradians

Other constonants: Special commands

w - deadfish mode on
ʍ - deadfish mode off
ɕ - if in deadfish mode, toggle character output

Note:

Constonants with no matching vowel pairs means that the command doesn't care about the vowel after it. Use '/' to begin/end a comment.

Example programs

Hello World

ɱimeʃaɱenaʃamoʃaʃameʃaɸaɹɒɰaʋɑʃaɳamɑʃaɱɪɳaneʃanuʃameʃanɪʃanuʃaɸaɹɒɰaʋyʃa

Cat Program

ɦaza

xkcd random number

məsa

Truth machine

ʂaʝaʂasaʝʌ 

Turing-completeness

It is turing-copmlete because brainfuck is.

Errors

Invalid syntax - Either a program begins in a vowel, or a constonant is not followed by one.
Invalid character - A symbol is not in ASCII and is outside a comment.
Undefined result - Result is either undefined or intermediate.

See also: