K ist eine extrem kompakte array-orientierte Programmiersprache, die Arthur Whitney 1993 bei KX Systems entwickelte. Sie ist eine Variante von APL mit Einflüssen aus Scheme und die Grundlage der Datenbank kdb+ — K-Code gilt als eine der dichtesten Notationsformen der Informatik.
Herkunft
Whitneys Weg begann 1988 mit A+ bei Morgan Stanley; K (1993) verschlankte die Notation weiter, kdb+ (1998) fügte die spaltenbasierte Datenbank hinzu, und 2003 kam q als lesbarer Wrapper. Ab 2018 entwickelte Whitney mit Shakti einen Nachfolger.
Erste Schritte
K-Repräsentationen wirken auf den ersten Blick kryptisch, sind aber konsistent:
+/!5
10
#1 2 3
3
!5 erzeugt 0 1 2 3 4, +/ summiert über den Vektor, # zählt Elemente.
Wichtige Primitive
!— enumerieren (!n) bzw. Dictionary?— finden, zufällige Auswahl, Unique#— zählen bzw. nehmen (Take)|— umkehren bzw. Maximum+/,*/,&/— Summe, Produkt, Minimum über Vektor@— Indizierung/Apply,.— Punktnotation für Tiefe
Praxis
K ist auf Geschwindigkeit ausgelegt: Vektoroperationen laufen ohne explizite Schleifen, Tabellen sind Spaltenvektoren, was kdb+ zu einem Standard für Hochfrequenz-Finanzdaten machte. Funktionen werden mit {...} geschrieben, Parameter heißen x, y, z.
K stammt aus derselben APL-Familie wie J; die lesbarere Schwester ist Q.