J ist eine array-orientierte Programmiersprache, die Kenneth E. Iverson und Roger Hui Anfang der 1990er-Jahre entwickelten. Sie überträgt die Ideen von APL auf den normalen ASCII-Zeichensatz, ist frei verfügbar (GPL) und gilt als die wichtigste Weiterentwicklung der Iverson-Linie.

Erste Schritte

Die interaktive Konsole heißt jconsole. Funktionen heißen Verben, Modifikatoren Adverbien:

   +/ i.5
10
   2 * 1 2 3
2 4 6

i.5 erzeugt 0 1 2 3 4, +/ ist die Insertion der Addition über den ganzen Vektor.

Wichtige Verben

  • i. n — Vektor 0 1 ... n-1
  • # y — Anzahl der Elemente
  • +/ y — Summe (Insertion)
  • % — Division, *: — Quadrat
  • >./<. — Maximum/Minimum
  • |. y — umkehren (Reverse)
  • /:/: — auf-/absteigend sortieren

Tacit Programming

Charakteristisch für J ist die tacite (punktfreie) Notation: Fork (f g h) y bedeutet (f y) g (h y), ein Hook (f g) y bedeutet y f (g y). So entstehen komplexe Funktionen ohne benannte Zwischenwerte:

   mean =: +/ % #
   mean 2 4 6
4

Die kurze Notation stammt aus APL; verwandte Sprachen derselben Familie sind Q und K.