parent nodes: Florians homepage (German)
APL concepts in Smalltalk
Apl is an Array processing language. See Wikipedia article about APL
The concepts of APL are:
data is either scalar or a vector with a shape (dimensions)
You learn to think in shaped vectors and a mathematical way to manipulate data.
two basic data types: numbers and characters
functions operate on one or two data elements
I use the microApl Community Edition, which is available for Linux.
Smalltalk is a nice, small and concise language. See Wikipedia article about Smalltalk
It has two concepts:
everything is an object
objects communicate through messages
You learn to think in objects and models.
I use Pharo, which is available for Linux, Windows and Mac.
More languages with clean concepts are: Prolog, Lisp, XSLT and other.
The AplLike implementation
I am a big fan of Smalltalk. The Smalltalk collection framwork is very matured.
Shaped Vectors, as in APL, is a thing I was missing in Smalltalk.
So I started to reimplement using reverse engineering the APL functions and vectors in Smalltalk. This resulted in the AplLike package.
Have a look at:
The next step - smalltalk like integration
The next step is to make the underlying principles more Ssmalltalk-like, i.e. trying to integrate them in the famous Smalltalk collection framwork.
So the new classes will be:
ShapedArray (derivated from Array). The class with the APL inspired interface.
ShapedScalar (derivated from ShapedArray). Special handling if there is an empty shape.
ShapedScalarBasic (derivated from ShapedScalar). Encapsulates Smalltalk objects
ArrayShape (derivated from Array). A class describing the shape of a ShapedArray.
Things to cover
APLs representation of true/false as 1/0 (AplTrue/AplFalse)
naming of methods
categorizing of methods
sequence of axis