APL A Programming Language APL works with arrays. There is only one data type, and it is the array. Arrays can have any number of dimensions. And the length of each dimension can be any nonnegative number. APL had numeric arrays and character arrays, but in APL2 these concepts were merged, and now arrays can contain numeric and character information both in the same array. APL2 also allows you to store arrays as specific elements in other arrays. APL2 also allows for full complex number manipulation. (APL does not.) APL has no keywords. It is symbolic only. It looks cool, but no one can understand it. Although you type APL from left to right just like every other language, APL is parsed from right to left. So you kind of have two write your code out on paper, backwards, so that you can type it in properly. The Greek letter iota gives you an array (a vector, one dimensional arrays are called vectors) containing the numbers 1 through n. iota 5 gives you the vector 1 2 3 4 5 If an array is more than one dimension, you isolate individual rows or columns or levels (in a 3-dimensional array). Array indexing is actually kind of cool. There is nothing like a true if statement or a true while loop or anything that. Choices are made using math. In fact, everything has to be done using math. rho gives you the length of an array or the shape of any array of dimension greater than one. You can also use it to design or initialize an array. All the special symbols in APL refer to "functions." Functions are either monadic (they take one argument to the right). Or dyadic (they take arguments on either side). For example, -x - is a monadic function, it negates the argument. x-y - is dyadic. It subtracts y from x. +x - monadic function, returns complex conjugate. x+y - regular old addition.