IPALang

From Esolang
Jump to navigation Jump to search

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: