APLXTM : New features in Version 4
This page relates to APLX Version 4, released in 2008. The latest version is 5.0 - see New Features in APLX Version 5.
APLX Version 4 includes major language enhancements to support object-oriented programming.
Powerful new general array editor
APLX Version 4 include a powerful new General Array Editor. Subject to available memory, this allows you to edit almost any simple, mixed or nested APL array, the only limit being that the array cannot exceed 5 dimensions. You can edit any element, and if you wish restructure it (for example, convert a numeric scalar element to a three-dimensional nested array). You can also restructure the whole array. The editor also supports editing arrays containing object references
Data Exchange via the Clipboard
You can now copy and paste arrays in various formats for exchange with Excel and other applications, between APL sessions, and within the General Array Editor. For example, in the session window, you can right-click on the name of a variable, and copy the data (including numeric and nested arrays) to the clipboard:
You can also write data to the clipboard within the APLX General Array Editor by selecting a range of cells, and choosing Copy from the Edit menu (You select a range of cells by clicking in one corner of the range to select it, and then shift-clicking on the opposite corner. You can also use the arrow keys, whilst holding down the shift key):
New QuickSymTM input method
The QuickSymTM feature of APLX version 4 provides a simple alternative to using the keyboard to enter APL symbols. By pressing a single key (usually the 'Menu' key in Windows, or F1 under MacOS), you can bring up a panel which displays the APL symbols for input.
Data exchange under Program Control
The new Quad-EXPORT system function allows you to write data in a number of formats including:
Similarly, the new Quad-IMPORT system function lets you import data from text, Unicode text, CSV, TSV, and SYLK files.
New Workspace-Search Feature, and Regular Expression Searches
The Edit menu now has a new item Search Workspace... This allows you to search all unlocked functions, operators, and class methods in the workspace. You can search for either a simple string, or a regular expression.
In this screen shot, we are searching (in workspace 10 HELPQWI) for a case-insensitive regular expression, to find any string beginning with DEMO_ followed by either C or P:
This brings up the following Search Results window:
The matches are shown in the upper pane; as you select each line (or click on the up/down arrows on the top right), the corresponding text is shown in context in the lower pane. You can of course edit the text directly in the lower pane. You can also specify a replacement string (or regular expression replacement) in ‘Replace’ edit box; clicking on the Replace button then makes the replacement and moves on to the next match.
String Search using Regular Expressions
The system function Quad-SS finds one or more text patterns in a character vector, and optionally replaces them with different sub-strings. It can now either do a simple search, matching characters one-by-one, or search for regular expressions, which allow you to specify sophisticated pattern-matching rules in a compact form. See the separate document Regular Expressions in APLX for full details of the regular-expression syntax.
New Structured-Control Error handling
APLX Version 4 includes new error trapping using :Try.. :CatchIf.. :CatchAll as follows:
:Try ... [:CatchIf
The block of code following the :Try keyword is executed, until either an error occurs, or a :CatchIf, :CatchAll, :End or :EndTry is encountered.
If no error has occurred within the :Try block, execution transfers to the statement after the :End or :EndTry.
If an error occurs in the :Try block (either in the statements in this function, or in any functions called from it), control transfers to the first :CatchIf statement, and the expression is evaluated. If it is true, the block of code following the :CatchIf is executed, and execution then resumes after the :EndTry or :End. If the expression is false, the same procedure is followed for any further :CatchIf blocks in the sequence. If none of the tests is true, the :CatchAll block (if any) is executed. It is permissible to have as many :CatchIf sections as you like.
Bugs and Comments
We welcome any comments you have about APLX Version 4, and any bug reports. Please use our on-line form to let us know.
Copyright © 1996-2007 MicroAPL Ltd