Unicode: Difference between revisions

Jump to navigation Jump to search
446 bytes removed ,  16:06, 5 February 2021
m
no edit summary
mNo edit summary
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The advent of '''[[wikipedia:Unicode|Unicode]]''' solved many problems with dealing with APL [[glyph|character]]s, however there was still some wiggle room as to which Unicode [[wikipedia:code point|codepoint]] were to be used in a Unicode implementation of APL, and different implementors made different choices.  This article, which documents these differences, is adapted from an original paper by [[Bob Smith]]<ref>Smith, Bob. [http://www.sudleyplace.com/APL/APL%20Characters%20and%20Their%20Aliases.pdf APL Characters and Their Aliases]. 14 Dec 2013–25 Dec 2019. Sudley Place Software.</ref> that attempted to raise awareness of these issues because the differences impede transfer of information.
The advent of '''[[wikipedia:Unicode|Unicode]]''' solved many problems with dealing with APL [[glyph|character]]s, however there was still some wiggle room as to which Unicode [[wikipedia:code point|codepoint]] were to be used in a Unicode implementation of APL, and different implementors made different choices.  This article, which documents these differences, is adapted from an original paper by [[Bob Smith]]<ref>Smith, Bob. ''APL Characters and Their Aliases''. 14 Dec 2013–25 Dec 2019. Sudley Place Software.</ref> that attempted to raise awareness of these issues because the differences impede transfer of information.


The relevant document for the APL character set is the ''APL Character Repertoire'' (ACR)<ref>ISO-IEC/JTC1/SC22/WG3. [http://std.dkuug.dk/jtc1/sc22/open/n3067.pdf N3067]: APL Character Repertoire. 28 Dec 1999.</ref>. For whatever reasons, that document never became a standard, but it does provide some guidance, and is better than each implementor making separate choices.
The relevant document for the APL character set is the ''APL Character Repertoire'' (ACR)<ref>ISO-IEC/JTC1/SC22/WG3. [http://std.dkuug.dk/jtc1/sc22/open/n3067.pdf N3067]: APL Character Repertoire. 28 Dec 1999.</ref>. For whatever reasons, that document never became a standard, but it does provide some guidance, and is better than each implementor making separate choices.
Line 13: Line 13:


==Comparison of implementations==
==Comparison of implementations==
The following characters are included have been encountered in APL code displayed somewhere on the Internet or in a PDF file. Blindly copying them into an APL [[session]] can produce an error which might well confuse the user.
{| class=wikitable style=text-align:center
{| class=wikitable style=text-align:center
! APL name !! Glyph !! Codepoint !! Unicode name !! [[APL2]] !! [[Dyalog APL|Dyalog<br>APL]] !! [[GNU APL|GNU<br>APL]] !! [[NARS2000|NARS<br>2000]] !! [[ngn/apl|ngn/<br>apl]] !! [[dzaima/APL|dzaima/<br>APL]] !! Monadic || Dyadic  
! APL name !! Glyph !! Codepoint !! Unicode name !! [[APL2]] !! [[Dyalog APL|Dyalog<br>APL]] !! [[GNU APL|GNU<br>APL]] !! [[NARS2000|NARS<br>2000]] !! [[ngn/apl|ngn/<br>apl]] !! [[dzaima/APL|dzaima/<br>APL]] !! Monadic || Dyadic  
|-
|-
! rowspan=2 | Star
! rowspan=2 | Star
| <source lang=apl inline>*</source> || U+002A || Asterisk || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | [[Exponential]] || rowspan=2 | [[Power|Power]]
| <source lang=apl inline>*</source> || U+002A || Asterisk || colspan=6 {{Yes|Universal}} || rowspan=2 | [[Exponential]] || rowspan=2 | [[Power|Power]]
|-
|-
| <source lang=apl inline>⋆</source> || U+26AA ||Star operator || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
| <source lang=apl inline>⋆</source> || U+26AA ||Star operator || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
! rowspan=2 | Minus
! rowspan=2 | Minus
| <source lang=apl inline>-</source> || U+002D || Hyphen-minus || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | [[Negate]] || rowspan=2 | [[Minus]]
| <source lang=apl inline>-</source> || U+002D || Hyphen-minus || colspan=6 {{Yes|Universal}} || rowspan=2 | [[Negate]] || rowspan=2 | [[Minus]]
|-
|-
| <source lang=apl inline>−</source> || U+2212 || Minus sign || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
| <source lang=apl inline>−</source> || U+2212 || Minus sign || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
Line 29: Line 30:
| <source lang=apl inline>^</source> || U+005E || Circumflex accent  || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || rowspan=2 | || rowspan=2 | [[And]]
| <source lang=apl inline>^</source> || U+005E || Circumflex accent  || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || rowspan=2 | || rowspan=2 | [[And]]
|-
|-
| <source lang=apl inline>∧</source> || U+22BD || Logical And || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
| <source lang=apl inline>∧</source> || U+22BD || Logical And || {{No|No<ref><source lang=apl inline>×</source> (U+00D7) is a universally supported substitute</ref>}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
|-
|-
! rowspan=2 | Stile
! rowspan=2 | Stile
| <source lang=apl inline>|</source> || U+007C || Vertical line || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | [[Magnitude]] || rowspan=2 | [[Residue]]
| <source lang=apl inline>|</source> || U+007C || Vertical line || colspan=6 {{Yes|Universal}} || rowspan=2 | [[Magnitude]] || rowspan=2 | [[Residue]]
|-
|-
| <source lang=apl inline>∣</source> || U+2212 || Divides || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
| <source lang=apl inline>∣</source> || U+2212 || Divides || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
! rowspan=2 | Tilde
! rowspan=2 | Tilde
| <source lang=apl inline>~</source> || U+007E || Tilde || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | [[Not]] || rowspan=2 | [[Without]]
| <source lang=apl inline>~</source> || U+007E || Tilde || colspan=6 {{Yes|Universal}} || rowspan=2 | [[Not]] || rowspan=2 | [[Without]]
|-
|-
| <source lang=apl inline>∼</source> || U+223C || Tilde operator || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
| <source lang=apl inline>∼</source> || U+223C || Tilde operator || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
|-
|-
! rowspan=2 | Alpha
! rowspan=2 | Alpha
| <source lang=apl inline>α</source> || U+03B1 || Greek small letter Alpha || rowspan=2 | || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 colspan=2 | [[Left Argument]]
| <source lang=apl inline>α</source> || U+03B1 || Greek small letter Alpha || rowspan=2 | || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 colspan=2 | [[dfn|Left Argument]]
|-
|-
| <source lang=apl inline>⍺</source> || U+237A || APL functional symbol Alpha || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
| <source lang=apl inline>⍺</source> || U+237A || APL functional symbol Alpha || colspan=5 {{Yes|Universal}}
|-
|-
! rowspan=2 | Omega
! rowspan=2 | Omega
| <source lang=apl inline>ω</source> || U+03C9 || Greek small letter Omega || rowspan=2 | || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 colspan=2 | [[Right Argument]]
| <source lang=apl inline>ω</source> || U+03C9 || Greek small letter Omega || rowspan=2 | || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 colspan=2 | [[dfn|Right Argument]]
|-
|-
| <source lang=apl inline>⍵</source> || U+237A || APL functional symbol Omega || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
| <source lang=apl inline>⍵</source> || U+237A || APL functional symbol Omega || colspan=5 {{Yes|Universal}}
|-
|-
! rowspan=2 | Epsilon
! rowspan=2 | Epsilon
| <source lang=apl inline>∈</source><ref>Found by Hanspeter Moser in [https://www.gnu.org/software/apl/Bits_and_Pieces/toronto-toolkit.apl.html The Toronto Toolkit]</ref> || U+2208 || Element of || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 | [[Enlist]]/[[Type]] || rowspan=2 | [[Membership]]
| <source lang=apl inline>∈</source><ref>Found by Hanspeter Moser in [https://www.gnu.org/software/apl/Bits_and_Pieces/toronto-toolkit.apl.html The Toronto Toolkit]</ref> || U+2208 || Element of || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 | [[Enlist]]/[[Type]] || rowspan=2 | [[Membership]]
|-  
|-  
| <source lang=apl inline>∊</source> || U+220A || Small Element of || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
| <source lang=apl inline>∊</source> || U+220A || Small Element of || colspan=6 {{Yes|Universal}}
|-
|-
! rowspan=2 | Jot
! rowspan=2 | [[Jot]]
| <source lang=apl inline>∘</source> || U+2218 || Ring operator || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | [[Outer product]] || rowspan=2 | [[Beside]]/[[Beside]]
| <source lang=apl inline>∘</source> || U+2218 || Ring operator || colspan=6 {{Yes|Universal}} || rowspan=2 | [[Outer product]] || rowspan=2 | [[Beside]]/[[Bind]]
|-
|-
| <source lang=apl inline>◦</source> || U+25E6 || White bullet || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
| <source lang=apl inline>◦</source> || U+25E6 || White bullet || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
|-
|-
! rowspan=2 | Less than or<br>equal to
! rowspan=2 | Less than or<br>equal to
| <source lang=apl inline>≤</source> || U+2264 || Less-than or equal to || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | || rowspan=2 | [[Less than or equal to|Less than or<br>equal to]]
| <source lang=apl inline>≤</source> || U+2264 || Less-than or equal to || colspan=6 {{Yes|Universal}} || rowspan=2 | || rowspan=2 | [[Less than or equal to|Less than or<br>equal to]]
|-
|-
| <source lang=apl inline>⩽</source> || U+2A7D || Less than or slanted equal to  || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
| <source lang=apl inline>⩽</source> || U+2A7D || Less than or slanted equal to  || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
|-
|-
! rowspan=2 | Greater than or<br>equal to
! rowspan=2 | Greater than or<br>equal to
| <source lang=apl inline>≥</source> || U+2265 || Greater than or equal to || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | || rowspan=2 | [[Greater than or equal to|Greater than or<br>equal to]]
| <source lang=apl inline>≥</source> || U+2265 || Greater than or equal to || colspan=6 {{Yes|Universal}} || rowspan=2 | || rowspan=2 | [[Greater than or equal to|Greater than or<br>equal to]]
|-
|-
| <source lang=apl inline>⩾</source> || U+2A7E || Greater than or slanted equal to  || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
| <source lang=apl inline>⩾</source> || U+2A7E || Greater than or slanted equal to  || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
Line 74: Line 75:
| <source lang=apl inline>⊽</source> || U+22BD || Nor || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 | || rowspan=2 | [[Nor]]
| <source lang=apl inline>⊽</source> || U+22BD || Nor || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 | || rowspan=2 | [[Nor]]
|-
|-
| <source lang=apl inline>⍱</source> || U+2371 || APL functional symbol down caret tilde  || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
| <source lang=apl inline>⍱</source> || U+2371 || APL functional symbol down caret tilde  || colspan=6 {{Yes|Universal}}
|-
|-
! rowspan=2 | Logical Nand
! rowspan=2 | Logical Nand
| <source lang=apl inline>⊼</source> || U+22BC || Nand || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 | || rowspan=2 | [[Nand]]
| <source lang=apl inline>⊼</source> || U+22BC || Nand || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || rowspan=2 | || rowspan=2 | [[Nand]]
|-
|-
| <source lang=apl inline>⍱</source> || U+2372 || APL functional symbol up caret tilde  || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
| <source lang=apl inline>⍱</source> || U+2372 || APL functional symbol up caret tilde  || colspan=6 {{Yes|Universal}}
|-
|-
! rowspan=4 | Diamond
! rowspan=4 | Diamond
| <source lang=apl inline>⋄</source> || U+22C4 || Diamond operator || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=4 colspan=2 | [[Statement Separator]]
| <source lang=apl inline>⋄</source> || U+22C4 || Diamond operator || colspan=6 {{Yes|Universal}} || rowspan=4 colspan=2 | [[Statement Separator]]
|-
|-
| <source lang=apl inline>◇</source> || U+25C7 || White Diamond    || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
| <source lang=apl inline>◇</source> || U+25C7 || White Diamond    || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
Line 91: Line 92:
|-
|-
! rowspan=2 | Quad
! rowspan=2 | Quad
| <source lang=apl inline>⎕</source> || U+2395 || APL functional symbol Quad  || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 colspan=2 | [[Quad name]]
| <source lang=apl inline>⎕</source> || U+2395 || APL functional symbol Quad  || colspan=6 {{Yes|Universal}} || rowspan=2 colspan=2 | [[Quad name]]
|-
|-
| <source lang=apl inline>▯</source> || U+26AA || White vertical rectangle || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
| <source lang=apl inline>▯</source> || U+26AA || White vertical rectangle || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
|-
|-
! rowspan=2 | Circle
! rowspan=2 | Circle
| <source lang=apl inline>○</source> || U+25CB || White circle || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || rowspan=2 | [[Pi Times]] || rowspan=2 | [[Circle function|Circular]]
| <source lang=apl inline>○</source> || U+25CB || White circle || colspan=6 {{Yes|Universal}} || rowspan=2 | [[Pi Times]] || rowspan=2 | [[Circle function|Circular]]
|-
|-
| <source lang=apl inline>⚪</source> || U+26AA || Medium white circle || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
| <source lang=apl inline>⚪</source> || U+26AA || Medium white circle || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
|}
|}
These characters are included here because they have been encountered them in APL code displayed somewhere on the Internet or in a PDF file. Thus blindly copying them into an APL [[session]] can produce an error which might well confuse the user.


== Functionality ==
== Functionality ==
Line 140: Line 140:
⍎⎕← '1',(⎕UCS 16⊥2  3  7  2),'1'  ⍝ Nand
⍎⎕← '1',(⎕UCS 16⊥2  3  7  2),'1'  ⍝ Nand
</source>
</source>
Note that the last four lines will not work on a system that doesn’t support [[dfns]].
Note that the last four lines will not work on a system that doesn’t support [[dfn]]s.


==Atomic Vector==
==Atomic Vector==
Line 150: Line 150:
== References ==
== References ==
<references/>
<references/>
{{APL glyphs}}[[Category:APL character set]]

Navigation menu