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.