Atomic vector: Difference between revisions
No edit summary |
m (Text replacement - "ISO/IEC 13751:2001" to "ISO/IEC 13751:2001") |
||
(15 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Built-in|Atomic vector|⎕AV}} is the name of a 256-[[character]] [[vector]] which contains the entire character set of older APL implementations that did not support [[Unicode]], but instead used a single byte to store each character. Its value varies wildly between dialects, and can even differ between editions of the same dialect. | |||
[[ISO/IEC 13751:2001]] standard defined atomic vector as: "An implementation-defined character vector containing every member of the ''required character set'' exactly once".<ref>BS ISO/IEC 13751:2001: Information technology. Programming languages, their environments and system software interfaces. Programming language Extended APL. (2001).</ref> | |||
</ | |||
In [[ | == Value == | ||
< | In the following, display of the the character sets are obtained using <syntaxhighlight lang=apl inline>16 16⍴mask\(mask←32≤⎕UCS ⎕AV)/⎕AV</syntaxhighlight> to replace control characters with spaces. | ||
=== APL2 === | |||
!"#$%&'()*+,-./0123456789:;<=>?@ | [[APL2]] uses two primary values of <syntaxhighlight lang=apl inline>⎕AV</syntaxhighlight>, an [[wikipedia:ASCII|ASCII]]-based value on [[wikipedia:|personal computer]]s, and an [[wikipedia:EBCDIC|EBCDIC]]-based value on [[wikipedia:mainframe|mainframe]]s. The ASCII-based value is: | ||
<pre> | |||
!"#$%&'()*+,-./ | |||
</ | 0123456789:;<=>? | ||
@ABCDEFGHIJKLMNO | |||
PQRSTUVWXYZ[\]^_ | |||
`abcdefghijklmno | |||
pqrstuvwxyz{|}~ | |||
ÇüéâäàåçêëèïîìÄÅ | |||
⎕⍞⌹ôöòûù⊤ÖÜø£⊥₧⌶ | |||
áíóúñѪº¿⌈¬½∪¡⍕⍎ | |||
░▒▓│┤⍟∆∇→╣║╗╝←⌊┐ | |||
└┴┬├─┼↑↓╚╔╩╦╠═╬≡ | |||
⍸⍷∵⌷⍂⌻⊢⊣⋄┘┌█▄¦Ì▀ | |||
⍺ß⊂⊃⍝⍲⍴⍱⌽⊖○∨⍳⍉∊∩ | |||
⌿⍀≥≤≠×÷⍙∘⍵⍫⍋⍒¯¨ | |||
</pre> | |||
=== APLX === | |||
In order to maximise the probability of being able to represent the text when converting from Unicode to internal representation, [[APLX]] accepts as input a number of alternative Unicode values for certain characters. However, these are automatically mapped to normalised character, and any unmappable characters are replaced with a question mark. | |||
<pre> | |||
⍐ ⍗ ⍇⍈ ⍱⍲ | |||
⍒⍋⌽⍉⊖⍟⌶⍫⍎⍕⍀⌿⍝⍞!⌹ | |||
¨)<≤=>]∨^≠÷,+./ | |||
0123456789([;×:\ | |||
¯⍺⊥∩⌊∊_∇{⍳∘'⎕|⊤○ | |||
*?⍴⌈~↓∪⍵⊃↑⊂←⊢→≥- | |||
⋄ABCDEFGHIJKLMNO | |||
PQRSTUVWXYZ∆⊣⍪$} | |||
┌┐└┘─│┼├┤┴┬ Í | |||
"#%&@£`≡≢⍷⍸ ⍤⍥⌷ | |||
ÄÅÇÉÑÖÜáàâäãåçéè | |||
êëíìîïñóòô⍥õúùûü | |||
ÀÃÕ Ææ⍬Øø¿¡ßÿ | |||
abcdefghijklmno | |||
pqrstuvwxyz⍙È€ | |||
</pre> | |||
== | === Dyalog APL === | ||
<syntaxhighlight lang=apl inline>⎕AV</syntaxhighlight> is obsolete in [[Dyalog APL]] since the Unicode Edition was introduced and is only retained for backwards compatibility.<ref>Bernard Legrand. [https://www.dyalog.com/uploads/documents/MasteringDyalogAPL.pdf#page=525 Mastering Dyalog APL (page 525)]. [[Dyalog Ltd]]. November 2009.</ref> It no longer contains all the [[glyph]]s used for [[primitive function]]s and [[primitive operator|operators]]<ref>[[Adám Brudzewsky]] [https://github.com/abrudz/SBCS/blob/master/README.md#usage SBCS] (Single Byte Character Set) Usage</ref>, but can be adjusted by setting the [[Atomic Vector - Unicode]] (<syntaxhighlight lang=apl inline>⎕AVU</syntaxhighlight>) variable to a list of Unicode code points. The default value is: | |||
<pre> | |||
⌶ɫ%'⍺⍵ | |||
_abcdefghijklmno | |||
pqrstuvwxyz ¯.⍬ | |||
0123456789 ⊢¥$£¢ | |||
∆ABCDEFGHIJKLMNO | |||
PQRSTUVWXYZ ý· | |||
⍙ÁÂÃÇÈÊËÌÍÎÏÐÒÓÔ | |||
ÕÙÚÛÝþãìðòõ{€}⊣⌷ | |||
¨ÀÄÅÆ⍨ÉÑÖØÜßàáâä | |||
åæçèéêëíîïñ[/⌿\⍀ | |||
<≤=≥>≠∨∧-+÷×?∊⍴~ | |||
↑↓⍳○*⌈⌊∇∘(⊂⊃∩∪⊥⊤ | |||
|;,⍱⍲⍒⍋⍉⌽⊖⍟⌹!⍕⍎⍫ | |||
⍪≡≢óôöø"# &´┘┐┌└ | |||
┼─├┤┴┬│@ùúû^ü`∣¶ | |||
:⍷¿¡⋄←→⍝)] §⎕⍞⍣ | |||
</pre> | |||
=== GNU APL === | |||
[[GNU APL]] is fully Unicode-aware, and only includes the atomic vector for completeness: | |||
<pre> | |||
!"#$%&'()*+,-./ | |||
0123456789:;<=>? | |||
@ABCDEFGHIJKLMNO | |||
PQRSTUVWXYZ[\]^_ | |||
`abcdefghijklmno | |||
pqrstuvwxyz{|}~ | |||
¥€⇄∧∼≬⋆⋸⌸⌺⌼μ⍁¡⍣⍅ | |||
⎕⍞⌹⍆⍤⍇⍈⍊⊤λ⍍⍏£⊥⍶⌶ | |||
⍐⍑χ≢⍖⍗⍘⍚⍛⌈⍜⍢∪⍨⍕⍎ | |||
⍬⍪∣│┤⍟∆∇→╣║╗╝←⌊┐ | |||
└┴┬├─┼↑↓╔╚╩╦╠═╬≡ | |||
⍸⍷∵⌷⍂⌻⊢⊣◊┘┌█▄▌▐▀ | |||
⍺⍹⊂⊃⍝⍲⍴⍱⌽⊖○∨⍳⍉∈∩ | |||
⌿⍀≥≤≠×÷⍙∘⍵⍫⍋⍒¯¨ </pre> | |||
== External links == | |||
=== Typing === | |||
* [https://mego.github.io/CodePageKeyboard/ Code Page Keyboard] | |||
=== Documentation === | |||
* [http://microapl.com/apl_help/ch_020_070_060.htm APLX] | |||
* [https://help.dyalog.com/latest/index.htm#Language/System%20Functions/av.htm Dyalog] | |||
=== References === | |||
<references/> | |||
{{APL built-ins}} | |||
[[Category:System constants]] | [[Category:System constants]] |
Latest revision as of 00:24, 10 March 2024
⎕AV
|
Atomic vector (⎕AV
) is the name of a 256-character vector which contains the entire character set of older APL implementations that did not support Unicode, but instead used a single byte to store each character. Its value varies wildly between dialects, and can even differ between editions of the same dialect.
ISO/IEC 13751:2001 standard defined atomic vector as: "An implementation-defined character vector containing every member of the required character set exactly once".[1]
Value
In the following, display of the the character sets are obtained using 16 16⍴mask\(mask←32≤⎕UCS ⎕AV)/⎕AV
to replace control characters with spaces.
APL2
APL2 uses two primary values of ⎕AV
, an ASCII-based value on personal computers, and an EBCDIC-based value on mainframes. The ASCII-based value is:
!"#$%&'()*+,-./ 0123456789:;<=>? @ABCDEFGHIJKLMNO PQRSTUVWXYZ[\]^_ `abcdefghijklmno pqrstuvwxyz{|}~? ÇüéâäàåçêëèïîìÄÅ ⎕⍞⌹ôöòûù⊤ÖÜø£⊥₧⌶ áíóúñѪº¿⌈¬½∪¡⍕⍎ ░▒▓│┤⍟∆∇→╣║╗╝←⌊┐ └┴┬├─┼↑↓╚╔╩╦╠═╬≡ ⍸⍷∵⌷⍂⌻⊢⊣⋄┘┌█▄¦Ì▀ ⍺ß⊂⊃⍝⍲⍴⍱⌽⊖○∨⍳⍉∊∩ ⌿⍀≥≤≠×÷⍙∘⍵⍫⍋⍒¯¨
APLX
In order to maximise the probability of being able to represent the text when converting from Unicode to internal representation, APLX accepts as input a number of alternative Unicode values for certain characters. However, these are automatically mapped to normalised character, and any unmappable characters are replaced with a question mark.
⍐ ⍗ ⍇⍈ ⍱⍲ ⍒⍋⌽⍉⊖⍟⌶⍫⍎⍕⍀⌿⍝⍞!⌹ ¨)<≤=>]∨^≠÷,+./ 0123456789([;×:\ ¯⍺⊥∩⌊∊_∇{⍳∘'⎕|⊤○ *?⍴⌈~↓∪⍵⊃↑⊂←⊢→≥- ⋄ABCDEFGHIJKLMNO PQRSTUVWXYZ∆⊣⍪$} ┌┐└┘─│┼├┤┴┬ Í "#%&@£`≡≢⍷⍸ ⍤⍥⌷ ÄÅÇÉÑÖÜáàâäãåçéè êëíìîïñóòô⍥õúùûü ÀÃÕ Ææ⍬Øø¿¡ßÿ abcdefghijklmno pqrstuvwxyz⍙È€
Dyalog APL
⎕AV
is obsolete in Dyalog APL since the Unicode Edition was introduced and is only retained for backwards compatibility.[2] It no longer contains all the glyphs used for primitive functions and operators[3], but can be adjusted by setting the Atomic Vector - Unicode (⎕AVU
) variable to a list of Unicode code points. The default value is:
⌶ɫ%'⍺⍵ _abcdefghijklmno pqrstuvwxyz ¯.⍬ 0123456789 ⊢¥$£¢ ∆ABCDEFGHIJKLMNO PQRSTUVWXYZ ý·? ⍙ÁÂÃÇÈÊËÌÍÎÏÐÒÓÔ ÕÙÚÛÝþãìðòõ{€}⊣⌷ ¨ÀÄÅÆ⍨ÉÑÖØÜßàáâä åæçèéêëíîïñ[/⌿\⍀ <≤=≥>≠∨∧-+÷×?∊⍴~ ↑↓⍳○*⌈⌊∇∘(⊂⊃∩∪⊥⊤ |;,⍱⍲⍒⍋⍉⌽⊖⍟⌹!⍕⍎⍫ ⍪≡≢óôöø"# &´┘┐┌└ ┼─├┤┴┬│@ùúû^ü`∣¶ :⍷¿¡⋄←→⍝)] §⎕⍞⍣
GNU APL
GNU APL is fully Unicode-aware, and only includes the atomic vector for completeness:
!"#$%&'()*+,-./ 0123456789:;<=>? @ABCDEFGHIJKLMNO PQRSTUVWXYZ[\]^_ `abcdefghijklmno pqrstuvwxyz{|}~? ¥€⇄∧∼≬⋆⋸⌸⌺⌼μ⍁¡⍣⍅ ⎕⍞⌹⍆⍤⍇⍈⍊⊤λ⍍⍏£⊥⍶⌶ ⍐⍑χ≢⍖⍗⍘⍚⍛⌈⍜⍢∪⍨⍕⍎ ⍬⍪∣│┤⍟∆∇→╣║╗╝←⌊┐ └┴┬├─┼↑↓╔╚╩╦╠═╬≡ ⍸⍷∵⌷⍂⌻⊢⊣◊┘┌█▄▌▐▀ ⍺⍹⊂⊃⍝⍲⍴⍱⌽⊖○∨⍳⍉∈∩ ⌿⍀≥≤≠×÷⍙∘⍵⍫⍋⍒¯¨
External links
Typing
Documentation
References
- ↑ BS ISO/IEC 13751:2001: Information technology. Programming languages, their environments and system software interfaces. Programming language Extended APL. (2001).
- ↑ Bernard Legrand. Mastering Dyalog APL (page 525). Dyalog Ltd. November 2009.
- ↑ Adám Brudzewsky SBCS (Single Byte Character Set) Usage