BEARBEITEN APL-Symbole im Unicode

⌈ ⌊ ⌶ ⌷ ⌹ ⌻ ⌽ ⌿ ⍀ ⍁ ⍂ ⍇ ⍈ ⍉ ⍋ ⍎ ⍐ ⍒ ⍕ ⍗ ⍙ ⍝ ⍞ ⍟ ⍡ ⍢ ⍣ ⍤ ⍥ ⍪ ⍫ ⍬ ⍱ ⍲ ⍳ ⍴ ⍵ ⍷ ⍸ ⍺ ⎕

Das sind 41 APL-Symbole aus dem Unicode-Block Miscellaneous Technical. Ihr Bereich geht von U+2308 bis U+2395

Auch in anderen Blöcken kommen APL-Symbole vor:

U+0021 bis U+00F7 (Latin-1, Basic und Extended-Zeichen),
17 Symbole: ! * + - / < = > ? \\ ^ | ~ ¨ ¯ × ÷
U+2190 bis U+2193 (Arrows),
4 Symbole: ← ↑ → ↓
U+2206 bis U+22C4 (Mathematical Operators),
21 Symbole: ∆ ∇ ∊ ∨ ∩ ∪ ∵ ∼ ≠ ≡ ≢ ≤ ≥ ⊂ ⊃ ⊖ ⊢ ⊣ ⊤ ⊥ ⋄
U+25AF bis U+25C8 (Geometrical Shapes),
3 Symbole: ▯ ◊ ○

Außerdem gibt es im Unicode-Block Miscellaneous Technical
noch 31 APL-Symbole, die nie benutzt werden:
von U+2338 bis U+2379,
⌸ ⌺ ⌼ ⌾ ⍁ ⍃ ⍄ ⍅ ⍆ ⍊ ⍌ ⍍ ⍏ ⍑ ⍓ ⍔ ⍖ ⍘ ⍚ ⍛ ⍜ ⍠ ⍦ ⍧ ⍩ ⍭⍮⍯ ⍰ ⍶ ⍹

Nochmals alle APL-Zeichen zusammen:
\' ( ) + , - . / : ; < = > ? [] \\ _ ¨ ¯ × ÷ ← ↑ → ↓ ∆ ∇ ∘ ∣ ∧ ∨ ∩ ∪ ∼ ≠ ≤ ≥ ≬ ⊂ ⊃ ⌈ ⌊ ⊤ ⊥ ⋆ ⌶ ⌷ ⌸ ⌹ ⌺ ⌻ ⌼ ⌽ ⌾ ⌿ ⍀ ⍁ ⍂ ⍃ ⍄ ⍅ ⍆ ⍇ ⍈ ⍉ ⍊ ⍋ ⍌ ⍍ ⍎ ⍏ ⍐ ⍑ ⍒ ⍓ ⍔ ⍕ ⍖ ⍗ ⍘ ⍙ ⍚ ⍛ ⍜ ⍝ ⍞ ⍟ ⍠ ⍡ ⍢ ⍣ ⍤ ⍥ ⍦ ⍧ ⍨ ⍩ ⍪ ⍫ ⍬ ⍭ ⍮ ⍯ ⍰ ⍱ ⍲ ⍳ ⍴ ⍵ ⍶ ⍷ ⍸ ⍹ ⍺ ⎕ ○

Neben den etwa 85 APL.-Symbolen (je nach APL-Version) können auch alle ASCII-Zeichen benutzt werden.

Wozu dienen die vielen Symbole in der APL-Programmiersprache?

Die APL-Symbole sind so eine Art „Steno“ für eingebaute Funktionen im APL.
Viele dieser Zeichen sind einfache Funktionen und Operatoren, ähnlich wie in anderen Programmiersprachen, z.B. in C++ oder Java: addieren +, subtrahieren -, multiplizieren × oder fakultät berechnen !.
Andere Symbole (= APL-Funktionen ) sind da schon mächtiger, etwa sortieren ⍋, intervall bilden ⍳ oder summieren als +/.
Im APL unterscheidet man ein-und zweistellige Funktionen, d. h. wichtig ist, ob Parameter nur auf der rechten Seite des APL-Symbols stehen oder auf beiden. In diesen Fällen spricht man auch von monadischen und dyadischen APL-Funktionen.
Ein Beispiel: jota ⍳ heißt als einstellige Funktion intervall; damit ergibt ⍳ 9 das Intervall 1 2 3 4 5 6 7 8 9. Dagegen ergibt die zweistellige Funktion index suchen 4 2 9 7 ⍳ 9 eine 3, d.h. die Neun steht an 3. Stelle auf der linken Seite des Ausdrucks.
Eine Stärke oder Schwäche (?!) des APL ist, dass es eine Interpreter-Sprache ist: Man kann Berechnungen fast wie bei einem Taschenrechner eingeben. Das verringert - richtig angewendet – ganz enorm die Entwicklungszeiten für Programme.
Eine weitere große Stärke des APL ist die Möglichkeit, direkt mit Matrizen zu rechnen etwa:
Matrizen zu multiplizieren oder die Inverse einer (quadratischen) Matrix zu bilden.

Einige Rechenbeispiele für APL -Funktionen (nach Lamp ⍝ steht ein Kommentar):
A:
⍳ 15 ⍝ Indexvektor bilden von 1 bis 15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

3 5 ⍴ ⍳ 15 ⍝ Vektor anordnen, 3 Zeilen, 5 Spalten
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

+/3 5 ⍴ ⍳ 15 ⍝ die 3 Zeilen summieren
15 40 65

+⌿3 5 ⍴ ⍳ 15 ⍝ die 5 Spalten summieren
18 21 24 27 30

B:
MAT ← 2 2⍴1 0 0 2
MAT
1 0
0 2

INV ← ⌹ 2 2⍴1 0 0 2
INV
1 0
0 0.5

MAT +.× INV
⍝ Matrix multipliziert mit
⍝ Inverser ergibt Einheitsmatrix
1 0
0 1

Gute Einführungen ins APL finden sich unter den zwei Links für Wikipedia (de. und en.).
http://de.wikipedia.org/wiki/APL_(Programmiersprache)
http://en.wikipedia.org/wiki/APL_(programming_language) und ein PDF
http://informatik.unibas.ch/lehre/ss06/cs506/_Downloads/apl/apl_slides.pdf

Auf der englischen Wikipedia-Seite wird auch anschaulich dargestellt, wie man nun die vielen Spezial-Zeichen in das APL Programm befördert: Natürlich über die Tastatur. Sie wird - ähnlich wie bei kyrillischen oder arabischen Keyboards - mit den APL-Zeichen belegt. Die Abbildung (bzw. der Link) zeigt eine mögliche Version eines Keyboard (wie bei der freien APL-Variante NARS2000 oder dem SAX-APL).

http://www.wickensonline.co.uk/apl/union.png
http://www.wickensonline.co.uk/apl-unicomp.html


Lit.:
Provisional Unicode Reference, Adrian Smith, Vector Vol.19, No. 3, January 2003 (liegt im Internet als PDF vor, bezieht sich nur auf APL-Symbole,

http://www.vector.org.uk/resource/uniref.pdf

erikrot

U+23E0U+23E1U+23E2U+23E3U+23E4U+23E5U+23E6U+23E7U+23E8 NOT ASSIGNEDU+23E9 NOT ASSIGNEDU+23EA NOT ASSIGNEDU+23EB NOT ASSIGNEDU+23EC NOT ASSIGNEDU+23ED NOT ASSIGNEDU+23EE NOT ASSIGNEDU+23EF NOT ASSIGNEDU+23F0 NOT ASSIGNEDU+23F1 NOT ASSIGNEDU+23F2 NOT ASSIGNEDU+23F3 NOT ASSIGNEDU+23F4 NOT ASSIGNEDU+23F5 NOT ASSIGNEDU+23F6 NOT ASSIGNEDU+23F7 NOT ASSIGNEDU+23F8 NOT ASSIGNEDU+23F9 NOT ASSIGNEDU+23FA NOT ASSIGNEDU+23FB NOT ASSIGNEDU+23FC NOT ASSIGNEDU+23FD NOT ASSIGNEDU+23FE NOT ASSIGNED
U+23E0 TOP TORTOISE SHELL BRACKET
U+23E1 BOTTOM TORTOISE SHELL BRACKET
U+23E2 WHITE TRAPEZIUM
U+23E3 BENZENE RING WITH CIRCLE
U+23E4 STRAIGHTNESS
U+23E5 FLATNESS
U+23E6 AC CURRENT
U+23E7 ELECTRICAL INTERSECTION
U+23E8 
U+23E9 
U+23EA 
U+23EB 
U+23EC 
U+23ED 
U+23EE 
U+23EF 
U+23F0 
U+23F1 
U+23F2 
U+23F3 
U+23F4 
U+23F5 
U+23F6 
U+23F7 
U+23F8 
U+23F9 
U+23FA 
U+23FB 
U+23FC 
U+23FD 
U+23FE 
CHARACTER  < BLOCK >  1 2 
U+2300 – U+23FF Miscellaneous Technical
DEUTSCH : ENGLISH