I first encountered APL in 1969 while working for NSA. Two years later, I left that job to work for STSC just so I could devote more time to studying and contributing to the language. I've never stopped thinking about APL even when I left the field to start my own company. As you can see, my interests tend towards system-level, and at times, obscure and useless areas. The following pages describe some of my APL-related projects.
Don't Quote Me: In Gary Bergquist's 2001 Q2 issue of his newsletter, he posed an interesting problem about parsing lines of APL in which both single and double quote marks are used. The problem is to determine which quote marks are used to delimit strings and which ones are inside a string. The solution I came up with solves the problem in a non-looping manner using, of all things, Matrix Divide.
A Glitch in Grade: While implementing Howard J. Smith, Jr.'s clever algorithm for dyadic character grade, I encountered a puzzle the explanation of which illuminates just how this primitive achieves its remarkable result. Moreover, there are free implementations of the comparison routine of this primitive in other languages (C, Perl, PHP).
APL in Unicode: While writing up my solution for the Don't quote Me problem mentioned above, I had a lot of trouble getting a single APL font for that page to display correctly in both Mozilla Firefox and Internet Explorer until I came across the Unicode fonts. I liked that solution so much, I wrote a script which can also be used as an Apache Web Server handler as well as at the command line.
APL Keyboard: I can never remember where all the special APL symbols are on the keyboard, and I'm not about to paste stickers onto the keys. Maybe this will help.
Entering APL Characters in Email: One of the more vexing problems with APL is the difficulty in entering its characters into your favorite email program so you can share code with others. Wouldn't it be nice if you could enter APL characters just as you do inside an APL interpreter? If your favorite email program is Mozilla's Thunderbird, here's how to do exactly that.
Anatomy of an Idiom: Here's a challenging idiom (Progressive Dyadic Iota) you might have seen before, but never quite understood — let's dissect it.
NARS2000: This project implements a full APL interpreter, started in September 2006, work on which is ongoing.
Boolean Functions: Almost from the very beginning of my involvement with APL, the idea of Boolean data interested me, hence the nickname. Here's a scan of an old (1982) paper on Boolean Functions including a paper I wrote for the APL79 Conference Proceedings entitled "A Programming Technique For Non-rectangular Data".
This page was created by Bob Smith -- please any questions or comments about it to me.
|
©
Sudley Place Software 1997-2011.
|
| Comments or suggestions? Send them to . |