|APL Problem Solving Competition|
|Written by Sue Gee|
|Thursday, 04 June 2015|
APL is a classic programming language that was, and is, groundbreaking. Dyalog, which maintains a dialect of APL, runs an annual competition aimed to introduce APL to a new generation of users.
Could you write a function to sum the first hundred thousand integers in just 9 keypresses?
With APL that is all that it takes - but one of the keys isn't to be found on a regular keyboard.
If you haven't come across it before it was developed in the 1960s by Kenneth E. Iverson who had devised mathematical notation for manipulating arrays, starting in 1957. In the preface to his book A Programming Language he states its premise:
Applied mathematics is largely concerned with the design and analysis of explicit procedures for calculating the exact or approximate values of various functions. Such explicit procedures are called algorithms or programs. Because an effective notation for the description of programs exhibits considerable syntactic structure, it is called a programming language.
The entire book is now available online as a PDF courtesy of the Software Preservation Group.
APL isn't to be dismissed as a "historical language" it is very much an ongoing one. According to the APL Wiki, APL Programming Language is:
one of the oldest (in terms of age) and youngest (in terms of concepts) of all programming languages. It is an interpreted language with built-in array capabilities and outstanding debugging features that makes the language an excellent choice for the agile approach. APL is also the very first functional programming language ever.
One of the barriers to using APL was and is its notation.
You needed to find some method of entering its set of symbols. Now it's much easier. The Try APL website has an onscreen keyboard and also a Cheat Sheet that gives you a description of each symbol. Here is one for iota used in a very short bit of code to produce the sum of the first 100,000 integers just as quickly as Gauss could do it:
If you are tempted by the idea of compact, functional code Dyalog's challenge gives you a reason to try it.
Dyalog is a company which maintains a platform with an extended version of the core APL language on a commercial basis and it provides a free of charge licence to those in full time education. Its annual competition is primarily for students although non-students are welcome to take part. Non-students are, however, not eligible for the cash prizes.
The total prize pot of $8500 will be distributed as 43 prizes as follows:
Grand prize $2500
Second prize $1250
Third prize $750 for the top three competitors over the two phases of the contest.
$100 each to the top 20 participants in Phase I of the contest
$100 each to 20 participants who submit entries to Phase II.
One non-student will win a complimentary registration to the 2015 Dyalog User meeting to be held in Sicily, Italy in September 2015. The student who comes top in the contest will be invited to Dyalog 15 to receive their prize and present their work. The student will be paid travel costs up to $3500 plus $500 for incidental expenses to attend.
Participants are not expected to have any previous familiarity with APL and Phase I of the contest introduces them to the language and has 10 small problems that can each be solved using a single line of APL code. In Phase II of the contest things start to heat up with a set of problems of varying complexity for which contestants will need to upload files containing the code of their solutions.
The deadline for the contest in July 16.
To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin, or sign up for our weekly newsletter.
or email your comment to: email@example.com
|Last Updated ( Thursday, 04 June 2015 )|