emoji-apl icon indicating copy to clipboard operation
emoji-apl copied to clipboard

Like APL, but with emojis

๐Ÿ™‚ APL

This idea has been holding my brain hostage, I hope that implementing it will restore my free will.

๐Ÿ—จ๏ธ The canonical game of life function, called LI (Liechtenstein)
๐Ÿ‡ฑ๐Ÿ‡ฎ๐Ÿชง๐ŸŒœ๐Ÿ‘๐Ÿ‘โžŠ ๐Ÿค”๐Ÿ›ถ๐Ÿ”ด๐ŸœโžŒ โžโš–๏ธ๐Ÿงฎ๐Ÿคฐ๐Ÿ˜๐ŸฅถโžŠ โ“ฟ โžŠ๐Ÿค๐Ÿ”ด๐Ÿคฃ๐ŸฅถโžŠ โ“ฟ โžŠ๐Ÿค๐Ÿ”ด๐Ÿ™ƒ๐Ÿชบ๐Ÿค”๐ŸŒ›

๐Ÿ—จ๏ธ An array containing a glider, called GL (Greenland)
๐Ÿ‡ฌ๐Ÿ‡ฑ๐ŸชงโžŒ โžŒ๐Ÿ“โžŠ โžŠ โžŠ โžŠ โ“ฟ โ“ฟ โ“ฟ โžŠ โ“ฟ

๐Ÿ—จ๏ธ The 8x8 grid to use, called GR (Greece)
๐Ÿ‡ฌ๐Ÿ‡ท๐Ÿชง๐Ÿฅถโž‘ ๐Ÿฅถโž‘๐Ÿ‘๐Ÿ‡ฌ๐Ÿ‡ฑ

๐Ÿ—จ๏ธ Print the first 4 steps to the screen
๐ŸŽฎ๐Ÿชง๐ŸŒœ๐Ÿ‡ฑ๐Ÿ‡ฎ๐Ÿ˜ฌ๐Ÿค”โžก๏ธ๐Ÿ‡ฌ๐Ÿ‡ท๐ŸŒ›๐Ÿ‘โ“ฟ๐Ÿ˜๐Ÿ“šโžŒ

What?

It's APL, but instead of the symbols I used emojis. For example ยจ (each) is now ๐Ÿ‘ (peach), โˆง (and) is now ๐Ÿœ (ant), and โŒฝ (reverse) is ๐Ÿ™ƒ.

How?

I didn't implement an entire APL for this (thank god), this uses GNU APL under the hood. You will need this installed. I wrote the translator itself in C, because APL didn't seem to like unicode strings much.

Why?

Why not?

Features

  • Many terrible puns
  • Names condense into flags to save space
  • Arguably more intuitive symbols than normal APL
  • There is no good reason to use this

Character map

๐Ÿ™‚APL Emoji APL Symbol
๐Ÿ‡ฆ a
๐Ÿ‡ง b
๐Ÿ‡จ c
๐Ÿ‡ฉ d
๐Ÿ‡ช e
๐Ÿ‡ซ f
๐Ÿ‡ฌ g
๐Ÿ‡ญ h
๐Ÿ‡ฎ i
๐Ÿ‡ฏ j
๐Ÿ‡ฐ k
๐Ÿ‡ฑ l
๐Ÿ‡ฒ m
๐Ÿ‡ณ n
๐Ÿ‡ด o
๐Ÿ‡ต p
๐Ÿ‡ถ q
๐Ÿ‡ท r
๐Ÿ‡ธ s
๐Ÿ‡น t
๐Ÿ‡บ u
๐Ÿ‡ป v
๐Ÿ‡ผ w
๐Ÿ‡ฝ x
๐Ÿ‡พ y
๐Ÿ‡ฟ z
โ“ฟ 0
โžŠ 1
โž‹ 2
โžŒ 3
โž 4
โžŽ 5
โž 6
โž 7
โž‘ 8
โž’ 9
๐Ÿ—จ๏ธ โ
โœ๏ธ '
๐Ÿงฎ +
๐Ÿฅ– -
โš”๏ธ ร—
๐Ÿช“ รท
๐Ÿ“ˆ โŒˆ
๐Ÿ“‰ โŒŠ
๐Ÿคฏ *
๐Ÿชต โŸ
๐Ÿฅง โ—‹
๐Ÿ“ข !
๐ŸŽฒ ?
๐Ÿ“ |
๐Ÿœ โˆง
๐Ÿ›ถ โˆจ
๐Ÿ•ท โฒ
โ›ต โฑ
โš–๏ธ =
๐Ÿ˜  โ‰ 
๐Ÿค โ‰ก
๐Ÿ˜ก โ‰ข
๐Ÿ”ฌ <
๐Ÿค โ‰ค
๐Ÿฆฃ โ‰ฅ
โ›ฐ๏ธ >
โ˜๏ธ โŒท
๐Ÿ‘ โ†‘
๐Ÿ‘Ž โ†“
๐Ÿ“ โด
๐Ÿชบ โŠ‚
โ›๏ธ โŠƒ
โฌ…๏ธ โŠฃ
โžก๏ธ โŠข
๐Ÿฆ„ โˆช
๐Ÿ™ โˆฉ
๐Ÿ™… ~
๐Ÿ“š โณ
๐Ÿ‘€ โธ
๐Ÿ“œ โˆŠ
๐Ÿ”Ž โท
๐Ÿคฐ /
๐ŸŒฟ \
๐Ÿงฌ โŒฟ
๐ŸŒฑ โ€
๐Ÿ™ƒ โŒฝ
๐Ÿคฃ โŠ–
๐Ÿ˜ ,
โค๏ธ โช
๐ŸŽถ โ‰
๐Ÿ”ข โŠฅ
๐Ÿ”ก โŠค
๐Ÿ‡ โŒน
๐Ÿท โŽ
๐Ÿ’พ โ•
๐Ÿง— โ‹
โ›ท โ’
๐Ÿ‘ ยจ
๐Ÿ˜ต โจ
๐Ÿš€ โŒถ
๐Ÿ”‘ โŒธ
๐Ÿฃ &
๐Ÿ‘‰ [
๐Ÿ‘ˆ ]
๐Ÿค โˆ˜
๐Ÿ˜ฌ โฃ
๐Ÿ”ง โ 
โœ๏ธ โŒบ
๐Ÿ˜ฑ โค
๐ŸŒ @
๐Ÿ”ด .
๐Ÿ โ†’
๐Ÿšง โ‹„
๐Ÿ’‚ :
๐ŸŒœ {
๐ŸŒ› }
๐Ÿค” โต
๐Ÿฅบ โบ
๐Ÿ˜ถ โฌ
๐Ÿ˜ณ โˆ‡
๐ŸŒณ #
๐Ÿชง โ†
๐ŸŽฎ โŽ•
โŒจ๏ธ โž
๐Ÿฅถ ยฏ
๐Ÿคฑ (
๐ŸŽ… )

FAQ

Why are the brackets ๐Ÿคฑ and ๐ŸŽ…?

The parens are parents.

Why do identifiers turn into flags?

I don't know.

An Emoji programming language already exists(?)

Yes, but Emojicode is a traditional programming language, not an APL - where's the fun in that?

How do I install this?

Make sure you have a C compiler and GNU APL, then run make and then sudo make install. The command to invoke the repl is ๐Ÿ™‚apl and you can pipe output to the repl such as cat life.๐Ÿ™‚apl | ๐Ÿ™‚apl.