4,493
edits
m (→References) |
No edit summary |
||
Line 1: | Line 1: | ||
APL uses a large range of [[glyphs|special graphic symbols]] to represent most functions and operators. While keyboard mappings become memorized over time, entering APL characters can frustrate the beginner. However, a study involving high school students found that typing and using APL characters did not hinder the students in any measurable way. There are several convenient ways to enter the glyphs. | APL uses a large range of [[glyphs|special graphic symbols]] to represent most functions and operators. While keyboard mappings become memorized over time, entering APL characters can frustrate the beginner. However, a study involving high school students found that typing and using APL characters did not hinder the students in any measurable way. There are several convenient ways to enter the glyphs. | ||
== | [[File:Dyalog US keyboard.jpg|thumb|right|US keyboard with [[Dyalog APL]] glyphs]] | ||
== Hardware == | |||
A couple of keyboards are being sold with APL symbols pre-printed onto the key caps: | |||
* Dyalog sells [https://www.dyalog.com/apl-font-keyboard.htm#mainContent US English, UK English, and Danish keyboards]. | |||
* Unicomp sells both [https://www.amazon.com/Unicomp-Classic-Buckling-Spring-Keyboard/dp/B01M7V3M61/ref=sr_1_8 entire keyboards] and [https://www.pckeyboard.com/page/product/USAPLSET separate key caps] for their keyboard range. | |||
Note that these devices only are visual modifications on regular keyboards; they do not automatically enable entry of APL glyphs into software. For this, one of the below methods is required. | |||
== By platform == | |||
[[File:Adám Brudzewsky's in-browser language bar.png|thumb|right|The in-browser language bar]] | [[File:Adám Brudzewsky's in-browser language bar.png|thumb|right|The in-browser language bar]] | ||
Line 24: | Line 35: | ||
=== Windows === | === Windows === | ||
* [[Adám Brudzewsky]] has [https://github.com/abrudz/Kbd various keyboard English layouts for Windows], which allow <kbd>AltGr</kbd> as shifting key, <kbd>`</kbd> as prefix key, or ASCII symbol | * [[Adám Brudzewsky]] has [https://github.com/abrudz/Kbd various keyboard English layouts for Windows], which allow <kbd>AltGr</kbd> as shifting key, <kbd>`</kbd> as prefix key, or ASCII symbol composition. | ||
* The [https://www.dyalog.com/apl-font-keyboard.htm#tab-1 Dyalog Unicode IME] uses <kbd>Ctrl</kbd>. Unless unselected, this [[wikipedia:Input_method|IME]] is installed by default with [[Dyalog APL]]:<br>[[File:Dyalog_APL_Installer.png|frameless|Dyalog APL IME selected in installer]] | * The [https://www.dyalog.com/apl-font-keyboard.htm#tab-1 Dyalog Unicode IME] uses <kbd>Ctrl</kbd>. Unless unselected, this [[wikipedia:Input_method|IME]] is installed by default with [[Dyalog APL]]:<br>[[File:Dyalog_APL_Installer.png|frameless|Dyalog APL IME selected in installer]] | ||
== | == By method == | ||
Most of today's APLs use a mapping which derives from the original [[APL\360]] terminals' keyboard layout. For example, Dyalog APL's standard US English layout for is as follows: | Most of today's APLs use a mapping which derives from the original [[APL\360]] terminals' keyboard layout. For example, Dyalog APL's standard US English layout for is as follows: | ||
Line 74: | Line 85: | ||
=== Long-press === | === Long-press === | ||
dzaima's [https://github.com/dzaima/hackerskeyboard Hacker's Keyboard + APL language] reacts to a[[wikipedia:Pointing_device_gesture#Touchpad_and_touchscreen_gestures|long-press]], | dzaima's [https://github.com/dzaima/hackerskeyboard Hacker's Keyboard + APL language] reacts to a [[wikipedia:Pointing_device_gesture#Touchpad_and_touchscreen_gestures|long-press]], popping up a palette that allows selecting any of the APL glyphs associated with that button. | ||
=== Keyword look-up === | === Keyword look-up === | ||
Line 80: | Line 91: | ||
* The [https://github.com/Dyalog/ride/releases/latest Dyalog RIDE] (Remote Integrated Development Environment) allows hitting the prefix key (<kbd>`</kbd> by default, but configurable) twice, followed by the (beginning of the) name of a symbol or a functionality. It then displays a drop-down of choices with arrow keys to indicate choice and the Tab key to insert the symbol. E.g. <kbd>`</kbd>,<kbd>`</kbd>,<kbd>d</kbd>,<kbd>i</kbd>,<kbd>v</kbd>,<kbd>Tab↹</kbd> inserts <source lang=apl inline>÷</source>. | * The [https://github.com/Dyalog/ride/releases/latest Dyalog RIDE] (Remote Integrated Development Environment) allows hitting the prefix key (<kbd>`</kbd> by default, but configurable) twice, followed by the (beginning of the) name of a symbol or a functionality. It then displays a drop-down of choices with arrow keys to indicate choice and the Tab key to insert the symbol. E.g. <kbd>`</kbd>,<kbd>`</kbd>,<kbd>d</kbd>,<kbd>i</kbd>,<kbd>v</kbd>,<kbd>Tab↹</kbd> inserts <source lang=apl inline>÷</source>. | ||
=== ASCII symbol | === ASCII symbol composition === | ||
* Many APL glyphs can be approximated by overlaying or juxtaposing two ASCII characters. [[ngn/apl]]'s scripted demo interface and [https://abrudz.github.io/lb/apl Adám Brudzewsky's in-browser language bar] allow such a pair of characters and hitting the <kbd>Tab↹</kbd> key to replace them with the corresponding APL character. For example, <kbd><</kbd>,<kbd>-</kbd>,<kbd>Tab↹</kbd> will insert <source lang=apl inline>←</source> and <kbd>T</kbd>,<kbd>o</kbd>,<kbd>Tab↹</kbd> will insert <source lang=apl inline>⍕</source>. | * Many APL glyphs can be approximated by overlaying or juxtaposing two ASCII characters. [[ngn/apl]]'s scripted demo interface and [https://abrudz.github.io/lb/apl Adám Brudzewsky's in-browser language bar] allow such a pair of characters and hitting the <kbd>Tab↹</kbd> key to replace them with the corresponding APL character. For example, <kbd><</kbd>,<kbd>-</kbd>,<kbd>Tab↹</kbd> will insert <source lang=apl inline>←</source> and <kbd>T</kbd>,<kbd>o</kbd>,<kbd>Tab↹</kbd> will insert <source lang=apl inline>⍕</source>. | ||
Line 148: | Line 159: | ||
\makeatother | \makeatother | ||
</source> | </source> | ||
== References == | == References == |