about us

The BAA promotes the APLs, terse programming languages derived from Iverson’s mathematical notation.

These languages flourish where low code volume and fast development take priority. Programs are short, abstract and fast to deploy. The APLs are possibly the best languages ever devised for inquisitive computing.

The kdb+ and q languages are particularly valued in the financial markets for fast handling of very large datasets.

Some examples

A Dyalog function that returns the arithmetical mean of a list of numbers:

   {(+/⍵)÷⍴⍵}

The same function as a tacit verb in J:

   (+/%#)

and in NARS2000:

   (+/÷⍴)

Erastosthenes’ sieve in Dyalog:

   {(~⍵∊∘.×⍨⍵)/⍵}∘{1↓⍳⍵}

A K program: p is defined as a 3 by 81 array of integers indicating the ‘exclusivity group’ for each board position; function s returns an array of all the solutions of the Sudoku puzzle x , found by ‘brute force’. 

  x(,/{@[x;y;]'(!10)^x*|/p[;y]=p,:,3/:-3!p:!9 9}')/&~*x
Older version:
  p.:3/:_(p:9\:!81)%3
  s:{*(,x)(,/{@[x;y;:;]'&21=x[&|/p[;y]=p]?!10}')/&~x}

Conways Game of Life
as a single expression in APL

More about the APLs…

Tutorials, cookbooks and reference

Wikipedia articles

Community sites

Comments