a2459967cae39a5d83959b5cbcf762282ae60366
[sheet.git] / keyboard / altgr / apl.eng.inc.pl
1 use utf8;
2 use strict;
3 use warnings;
4
5 my %dyalogx = (
6         'Q' => '⍰',
7         'R' => '⌾',
8         'G' => '⍢',
9         'B' => '⍭',
10         'N' => '⍡',
11         'M' => '∥',
12 );
13 our %rows = (
14         '~' => '⌺',
15         '!' => '⌶',
16         '@' => '⍫',
17         '#' => '⍒',
18         '$' => '⍋',
19         '%' => '⌽',
20         '^' => '⍉',
21         '&' => '⊖',
22         '*' => '⍟',
23         '(' => '⍱',
24         ')' => '⍲',
25         '_' => '!',
26         '+' => '⌹',
27         '`' => '⋄',
28         '1' => '¨',
29         '2' => '¯',
30         '3' => '<',
31         '4' => '≤',
32         '5' => '=',
33         '6' => '≥',
34         '7' => '>',
35         '8' => '≠',
36         '9' => '∨',
37         '0' => '∧',
38         '-' => '×',
39         '=' => '÷',
40         'E' => '⍷',
41         'T' => '⍨',
42         'I' => '⍸',
43         'O' => '⍥',
44         'P' => '⍣',
45         '{' => '⍞',
46         '}' => '⍬',
47         '|' => '⊣',
48         'q' => '?',
49         'w' => '⍵',
50         'e' => '∊',
51         'r' => '⍴',
52         't' => '∼', # ~
53         'y' => '↑',
54         'u' => '↓',
55         'i' => '⍳',
56         'o' => '○',
57         'p' => '⋆', # *
58         '[' => '←',
59         ']' => '→',
60         '\\'=> '⊢',
61         'J' => '⍤',
62         'K' => '⌸',
63         'L' => '⌷',
64         ':' => '≡',
65         '"' => '≢',
66         'a' => '⍺',
67         's' => '⌈',
68         'd' => '⌊',
69         'f' => '_',
70         'g' => '∇',
71         'h' => '∆',
72         'j' => '∘',
73         'k' => "'",
74         'l' => '⎕',
75         ';' => '⍎',
76         "'" => '⍕',
77         'Z' => '⊆',
78         '<' => '⍪',
79         '>' => '⍙',
80         '?' => '⍠',
81         'z' => '⊂',
82         'x' => '⊃',
83         'c' => '∩',
84         'v' => '∪',
85         'b' => '⊥',
86         'n' => '⊤',
87         'm' => '|',
88         ',' => '⍝',
89         '.' => '⍀',
90         '/' => '⌿',
91         %dyalogx,
92 );
93
94 my $groups = do 'keyboard/altgr/groups.inc.pl';
95 $groups->{def}{''}{$_} = 'g4' for split //,'weEriIoOa/*'; # lookalikes
96 $groups->{def}{''}{$_} .= ' ext' for keys %dyalogx;
97 $groups->{flag}{ext} = ['extended', 'optional operators not available in all variants'];
98
99 +{
100         %{$groups},
101         version => '1.0',
102         title => 'APL',
103         intro => join("\n",
104                 'Resulting <a href="/charset">Unicode</a> characters',
105                 'of a typical <a href="/apl">APL</a> keyboard layout',
106                 'derived from IBM System/360 terminals.',
107                 'Usually obtained by prefixing <code>`</code> (Dyalog)',
108                 'and/or pressing AltGr (APLX).',
109         ),
110         description => [
111                 'Typical IBM-derived APL keyboard layout,',
112                 'as found in APLX and Dyalog implementations.',
113         ],
114         image => 'keyboard/altgr/unicomp-apl.jpg',
115 }