Open paulotorrens opened 8 years ago
Hello Paulo,
I would be happy to entertain this request if you can compile a list of Unicode code points for the APL characters that are currently missing in Source Code Pro. Ideally, it would be nice to have a text document that is set up in columns that show:
APL Character | Unicode code point | Unicode name |
---|---|---|
⌹ | U+2339 | APL FUNCTIONAL SYMBOL QUAD DIVIDE |
Hello, Paul,
Will gladly do! (Not sure what you mean by "entertain", though.)
I've downloaded SCP from github.io to check what it has, which I hope is updated. The following characters used in the APL programming language seem missing, in order:
APL Character | Unicode code point | Unicode name | Picture |
---|---|---|---|
∇ | U+2207 | NABLA | |
∊ | U+220A | SMALL ELEMENT OF | |
∘ | U+2218 | RING OPERATOR | |
∣ | U+2223 | DIVIDES | |
∧ | U+2227 | LOGICAL AND | |
∨ | U+2228 | LOGICAL OR | |
∪ | U+222A | UNION | |
∼ | U+223C | TILDE OPERATOR | |
≢ | U+2262 | NOT IDENTICAL TO | |
⊂ | U+2282 | SUBSET OF | |
⊃ | U+2283 | SUPERSET OF | |
⊖ | U+2296 | CIRCLED MINUS | |
⊢ | U+22A2 | RIGHT TACK | |
⊣ | U+22A3 | LEFT TACK | |
⊤ | U+22A4 | DOWN TACK | |
⊥ | U+22A5 | UP TACK | |
⋆ | U+22C6 | STAR OPERATOR | |
⌈ | U+2308 | LEFT CEILING | |
⌊ | U+230A | LEFT FLOOR | |
⌶ | U+2336 | APL FUNCTIONAL SYMBOL I-BEAM | |
⌷ | U+2337 | APL FUNCTIONAL SYMBOL SQUISH QUAD | |
⌸ | U+2338 | APL FUNCTIONAL SYMBOL QUAD EQUAL | |
⌹ | U+2339 | APL FUNCTIONAL SYMBOL QUAD DIVIDE | |
⌺ | U+233A | APL FUNCTIONAL SYMBOL QUAD DIAMOND | |
⌻ | U+233B | APL FUNCTIONAL SYMBOL QUAD JOT | |
⌼ | U+233C | APL FUNCTIONAL SYMBOL QUAD CIRCLE | |
⌽ | U+233D | APL FUNCTIONAL SYMBOL CIRCLE STILE | |
⌾ | U+233E | APL FUNCTIONAL SYMBOL CIRCLE JOT | |
⌿ | U+233F | APL FUNCTIONAL SYMBOL SLASH BAR | |
⍀ | U+2340 | APL FUNCTIONAL SYMBOL BACKSLASH BAR | |
⍁ | U+2341 | APL FUNCTIONAL SYMBOL QUAD SLASH | |
⍂ | U+2342 | APL FUNCTIONAL SYMBOL QUAD BACKSLASH | |
⍃ | U+2343 | APL FUNCTIONAL SYMBOL QUAD LESS-THAN | |
⍄ | U+2344 | APL FUNCTIONAL SYMBOL QUAD GREATER-THAN | |
⍅ | U+2345 | APL FUNCTIONAL SYMBOL LEFTWARDS VANE | |
⍆ | U+2346 | APL FUNCTIONAL SYMBOL RIGHTWARDS VANE | |
⍇ | U+2347 | APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW | |
⍈ | U+2348 | APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW | |
⍉ | U+2349 | APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH | |
⍊ | U+234A | APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR | |
⍋ | U+234B | APL FUNCTIONAL SYMBOL DELTA STILE | |
⍌ | U+234C | APL FUNCTIONAL SYMBOL QUAD DOWN CARET | |
⍍ | U+234D | APL FUNCTIONAL SYMBOL QUAD DELTA | |
⍎ | U+234E | APL FUNCTIONAL SYMBOL DOWN TACK JOT | |
⍏ | U+234F | APL FUNCTIONAL SYMBOL UPWARDS VANE | |
⍐ | U+2350 | APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW | |
⍑ | U+2351 | APL FUNCTIONAL SYMBOL UP TACK OVERBAR | |
⍒ | U+2352 | APL FUNCTIONAL SYMBOL DEL STILE | |
⍓ | U+2353 | APL FUNCTIONAL SYMBOL QUAD UP CARET | |
⍔ | U+2354 | APL FUNCTIONAL SYMBOL QUAD DEL | |
⍕ | U+2355 | APL FUNCTIONAL SYMBOL UP TACK JOT | |
⍖ | U+2356 | APL FUNCTIONAL SYMBOL DOWNWARDS VANE | |
⍗ | U+2357 | APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW | |
⍘ | U+2358 | APL FUNCTIONAL SYMBOL QUOTE UNDERBAR | |
⍙ | U+2359 | APL FUNCTIONAL SYMBOL DELTA UNDERBAR | |
⍚ | U+235A | APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR | |
⍛ | U+235B | APL FUNCTIONAL SYMBOL JOT UNDERBAR | |
⍜ | U+235C | APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR | |
⍝ | U+235D | APL FUNCTIONAL SYMBOL UP SHOE JOT | |
⍞ | U+235E | APL FUNCTIONAL SYMBOL QUOTE QUAD | |
⍟ | U+235F | U+235F APL FUNCTIONAL SYMBOL CIRCLE STAR | |
⍠ | U+2360 | APL FUNCTIONAL SYMBOL QUAD COLON | |
⍡ | U+2361 | APL FUNCTIONAL SYMBOL UP TACK DIAERESIS | |
⍢ | U+2362 | APL FUNCTIONAL SYMBOL DEL DIAERESIS | |
⍣ | U+2363 | APL FUNCTIONAL SYMBOL STAR DIAERESIS | |
⍤ | U+2364 | APL FUNCTIONAL SYMBOL JOT DIAERESIS | |
⍥ | U+2365 | APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS | |
⍦ | U+2366 | APL FUNCTIONAL SYMBOL DOWN SHOE STILE | |
⍧ | U+2367 | APL FUNCTIONAL SYMBOL LEFT SHOE STILE | |
⍨ | U+2368 | APL FUNCTIONAL SYMBOL TILDE DIAERESIS | |
⍩ | U+2369 | APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS | |
⍪ | U+236A | APL FUNCTIONAL SYMBOL COMMA BAR | |
⍫ | U+236B | APL FUNCTIONAL SYMBOL DEL TILDE | |
⍬ | U+236C | APL FUNCTIONAL SYMBOL ZILDE | |
⍭ | U+236D | APL FUNCTIONAL SYMBOL STILE TILDE | |
⍮ | U+236E | APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR | |
⍯ | U+236F | APL FUNCTIONAL SYMBOL QUAD NOT EQUAL | |
⍰ | U+2370 | APL FUNCTIONAL SYMBOL QUAD QUESTION | |
⍱ | U+2371 | APL FUNCTIONAL SYMBOL DOWN CARET TILDE | |
⍲ | U+2372 | APL FUNCTIONAL SYMBOL UP CARET TILDE | |
⍳ | U+2373 | APL FUNCTIONAL SYMBOL IOTA | |
⍴ | U+2374 | APL FUNCTIONAL SYMBOL RHO | |
⍵ | U+2375 | APL FUNCTIONAL SYMBOL OMEGA | |
⍶ | U+2376 | APL FUNCTIONAL SYMBOL ALPHA UNDERBAR | |
⍷ | U+2377 | APL FUNCTIONAL SYMBOL EPSILON UNDERBAR | |
⍸ | U+2378 | APL FUNCTIONAL SYMBOL IOTA UNDERBAR | |
⍹ | U+2379 | APL FUNCTIONAL SYMBOL OMEGA UNDERBAR | |
⍺ | U+237A | APL FUNCTIONAL SYMBOL ALPHA | |
⎕ | U+2395 | APL FUNCTIONAL SYMBOL QUAD |
I hope I'm not missing any symbol in the above table! :worried:
Also, I got the pictures above from decodeunicode for easier visualization, but as I mentioned before, the best reference for the symbols is still the APL385 font.
APL programmers also use symbols ranging from U+24B6 (CIRCLED LATIN CAPITAL LETTER A) to U+24CF (CIRCLED LATIN CAPITAL LETTER Z), but those are usually rendered with an underline instead of being circled (this can be seen in APL385 and in the keyboard pic). I would like to request those as well, underlined instead of circled, but I'm not sure if you'll agree with this.
Aside from those, there are some extra math symbols that are sometimes used in Haskell, Coq or Agda (programming languages used for theorem proofing); they are not needed as they are in APL, but some people like to use them. Some that I have seem in the wild (that are not included in the font nor in the above table) follow:
Character | Unicode code point | Unicode name | Picture |
---|---|---|---|
∀ | U+2200 | FOR ALL | |
∂ | U+2202 | PARTIAL DIFFERENTIAL | |
∄ | U+2204 | THERE DOES NOT EXIST | |
∅ | U+2205 | EMPTY SET | |
∈ | U+2208 | ELEMENT OF | |
∉ | U+2209 | NOT AN ELEMENT OF | |
∐ | U+2210 | N-ARY COPRODUCT | |
∠ | U+2220 | ANGLE | |
∴ | U+2234 | THEREFORE | |
∵ | U+2235 | BECAUSE | |
⊄ | U+2284 | NOT A SUBSET OF | |
⊅ | U+2285 | NOT A SUPERSET OF | |
⊆ | U+2286 | SUBSET OF OR EQUAL TO | |
⊇ | U+2287 | SUPERSET OF OR EQUAL TO | |
⊈ | U+2288 | NEITHER A SUBSET OF NOR EQUAL TO | |
⊉ | U+2289 | NEITHER A SUPERSET OF NOR EQUAL TO | |
⟨ | U+27E8 | MATHEMATICAL LEFT ANGLE BRACKET | |
⟩ | U+27E9 | MATHEMATICAL RIGHT ANGLE BRACKET |
The above are just a suggestion.
So, what do you think? :smile:
s/entertain/consider/
@paulotorrens I’m looking into this a bit and find that the some of the glyph names in the APL385 font are quite creative, eg smirk for ⍨ U+2368 APL FUNCTIONAL SYMBOL TILDE DIAERESIS. i’m curious if this is standard lingo? or if this is just creativity on the part of the font developer?
@pauldhunt, those names probably came from the unicode guys; we actually call ⍨ the "commute operator", for instance. APL programmers name the symbols based on their actual function/meaning.
You might notice that the names of some functions in the "Unicode Name" column are wrong: check ⍕ and ⍎. That is the official name, I am afraid: the columns are correct, it's the Unicode commitee who got it wrong.
To be honest, a few of the symbols I listed are only part of the unicode standard and actually were never used in an APL compiler/interpreter. I listed them along just in case (here shows which ones are not actually used, but the server seems broken at this moment; Google cached it though). As a compiler developer myself, I'd like to request those symbols as well because (though improbable) I might find use for them for my implementation of the language (as it is the case of the last table with non-APL characters).
I have questions about some characters that seem to be duplicates of others:
Are the Greek letters alpha, iota, rho, & omega duplicates of the actual Greek letters? Or should they be different somehow? I’m guessing they’re duplicates.
How does the symbol for ‘DIVIDES’ differer from the bar symbol? Is this another duplicated shape?
More to follow at a later point...
On the APL385 font, the symbols are a bit different, but nothing special. Maybe this small difference was made to make them recognizable as not being the codepoints for actual greek letters, I guess. Nevertheless, the greek letters on SCP for those would work well as the APL symbols, duplicating those would be ok; I'd feel perfectly fine programming with the SCP symbols for those.
Divides may be equal to the bar (U+7C VERTICAL LINE), no difference here.
I'm sure you already noticed, but lots of symbols have duplicates inside a box (QUAD) and with a circle (CIRCLE). So some of them are just combinations.
Hi, I am also making my own APL monospace font for entertainment. (OK, a weird kind of entertainment, but that's irrelevant here...) I noticed for the following glyphs, APL 385 has significantly different look from all other free fonts over the Internet, as well as the unicode standard: U+236B ⍫ APL FUNCTIONAL SYMBOL DEL TILDE U+2371 ⍱ APL FUNCTIONAL SYMBOL DOWN CARET TILDE U+2372 ⍲ APL FUNCTIONAL SYMBOL UP CARET TILDE
In all of these cases, APL 385 places the tilde over the top of the base glyph, while other fonts place the tilde over the base glyph. But APL 385's treatment to the tildes are not consistent: In "U+236C ⍬ APL FUNCTIONAL SYMBOL ZILDE", APL 385 simply draws a tilde over the base glyph. In "U+236B ⍭ APL FUNCTIONAL SYMBOL STILE TILDE", APL 385 splits the vertical line to avoid crossing the tilde.
In all these cases, APL 385's approach looks more aesthetically pleasing than possible alternatives. However, could some APL user confirm that the glyph shapes in APL 385 are well-received? You don't find the tildes at varying heights annoying, do you?
@ahyangyi, as far as I know, APL385 is the reference font. Though I'm too young to have used one of the original APL implementations, I do remember seeing an APL typewriter in which such characters were actually overstriked, so the tilde would most certainly be placed above the base glyph. I can't say all APL programmers agree, but I personally feel comfortable programming with APL385, and, in almost every APL site I've been, the first font suggested was actually APL385.
@paulotorrens Thanks a lot!
APL support discussion on Noto's repo https://github.com/googlei18n/noto-fonts/issues/751
@paulotorrens Responding to two items:
Character Name vs. Function Name
At IBM context was the key. If you were working with people who were designing fonts, the character name as used (as ? is the function "roll" or "deal" - and who wants to say that all the time, just "query" or "question mark"). If you were talking code, it was the function name "A is assigned 52 deal 52", for instance. This is when spoken.
I will accept either, so this is no problem, but I'm apt to use the above.
APL Typewriter (2741 typeball)
This is what I started using when I was first programming. The typeball did "tilde" through del (as well as up and down caret). Note that tilde, (up/down) caret were not "supersigns" for things like Ñ, but were in the middle of the character box. So "~" was in the middle, not above for a character accent.
No biggie, but the 2741 Typewriter terminal was what I first learned programming on, and that was APL (just insert the APL typeball, and you're gold). OK, it was late 1970s. Today I'd say it was a waste of paper. Different times...
A very good description of designing an APL font was written by Joey K. Tuttle for the APL '81 conference. At that time, he was in the process of designing an APL font that he used with TeX to produce output for laser printers. The paper discusses the merits of the original APL selectric fonts and other typewriter fonts before talking about the design of his font for devices available at that time. This was done prior to Unicode. This paper is available from the ACM at https://dl.acm.org/citation.cfm?id=805378&dl=ACM&coll=DL
Hello!
I've been looking for a nice monospaced font to use for some projects (which I intend to release under the GPL license), but I need to use APL glyphs as well, (most of) which reside on the Miscellaneous Technical unicode page (and I must also admit that some symbols that are not APL, but are a part of this page, would be welcome...).
The closest I got is the well-known APL385 font (easy to find on the web to download free of charge), which has all the needed characters, and would be perfect if it had a bold version. Sadly, the font won't render nicely on some browsers with simulated bold, which is wider than the regular character size and breaks the monospace... :disappointed:
Any chance to get the APL symbols on this font?
(By the way, some fonts were made with such symbols by authors that were not familiar with the language, so they might look unfamiliar. The APL385 font would be the best reference, as it has all the needed symbols and all of them look familiar and nice to APL programmers, and indeed is usually the preferred font.)