Skip to content

Editorial: Solving Problems with APL

Vector 7:3, page 3

APL in perspective APL community

Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 3

I was most impressed with the talks given at the September meeting as they showed APL being used as a simple and elegant tool to solve ordinary problems.

Adrian Smith showed how he had developed some functions which mirrored the PostScript language, and which could be used for prototyping and testing PostScript programs. Graham Parkhouse showed how APL enabled him to display engineering ideas in three dimensions with proper perspective and shading. Both had created a ‘tool box’ of APL functions to tackle their respective problems, and I felt that APL had influenced the way they had gone about constructing solutions.

The APL notation seems to exert a strong influence on the way one thinks about problems. In my own case I often find the ordinary mathematical notation in a textbook difficult, and understanding only comes when I have converted it into APL. The power of the APL operators, particularly in the new extended APLs with nested arrays, makes problems easy to state, and having stated them concisely the road to the solution is often easier.

The environment in which APL works is just as important as the notation. The concept of a workspace where data, functions and operators all co-exist, make it easy to test out ideas which may lead to a solution. Having found a algorithm which is a stepping stone towards the final goal, one promptly turns it into a function which can be applied as required.

The APL syntax enabled Adrian and Graham to string functions together in a very natural and obvious way, which made their solutions seem so easy and simple. All languages allow the definition of functions or procedures, but the APL syntax combined with the workspace environment seems to make things much easier than other languages. Recently I have used REXX under VM. REXX is a deservedly popular language and is an interpreter like APL. Being a beginner I naturally looked at the procedures written by experts in order to learn the language. I was quite surprised to find that most of the procedures were self contained and that they did not seem to be built in the normal APL way of using functions as building blocks. REXX has all the facilities needed for creating procedures using the building block approach. I could only conclude that the facilities tended not to be used because passing data between independent REXX procedures was less convenient than passing data between APL functions.

Creating reusable code is vital if programming problems are to be solved quickly. Neither Adrian or Graham created all their functions from scratch - many utilities were copied into their workspaces. The current Object Oriented Programming bandwagon rightly emphasises the importance of writing reusable code, and OOPS languages have excellent facilities for encapsulating functions so that they are truly modular. APL is showing its age in this respect, and Packaged Workspaces have to be used to ensure proper encapsulation. However )COPY has served us well over the last 25 years and will continue to do so.

In my view APL is the ideal problem solving language. The notation, syntax and environment all work together as an integrated whole to give us all a potent and effective tool, both at the computer keyboard and as a way of thinking about problems and solutions.

Change of Venue for Monthly Meetings

From February 1991, we have decided to change the venue of our monthly meetings in London. Meetings will now be held at the Institute of Electrical Engineers, Savoy Place, London.

There are two main reasons for the change. Firstly, the cost of hiring a room at the IEE is considerably less than at Over-Seas House. Secondly (and possibly more importantly), the IEE room comes equipped with a VGA-quality Barco projector, enabling talks with demonstrations at every meeting without the trouble and considerable expense of booking an outside company to provide one.

The committee believe that this move will greatly enhance the quality of our monthly meetings - come along in February and see if we’ve made the right decision.