I appreciate the simple presentation and the interactive implementation. But… APL is good for vector/matrix manipulation. What else is new? An implementation of a algorithm with greater functionality has existed on Rosetta Code since May of 2011. You’ve implemented an important algorithm, and the implementation is rather elegant—I don’t claim it to be trivial enough for me to implement—but I fail to see how this makes the case for ML development with APL on the whole. Nothing personal, just trying to be a good skeptic & cut things down to size.
A previous article about APL attracted a comment complaining that too often we see the same “game of life” program being analyzed when talking about APL:
I’ve only been learning the language for about a year. This algorithm and implementation came from last year’s Dyalog competition. An acquaintance, who introduced me to APL, mentioned on twitter they were implementing k-means in C other day, so I thought it would be fun to show off my APL version.
It’s difficult to strike a balance when writing about APL for a general audience. There are few people fluent in the language, so most contemporary treatments start with the introductory fundamentals. However, even though this isn’t a state-of-the-art version of k-means, I feel like I succeeded in presenting a solution to a real-world problem while keeping it accessible to the uninitiated. Do you agree?
Thank you for the feedback. What would you like to see written about APL?
Probably my favorite article about APL, which I couldn’t find upon searching, was a criticism of its discoverability, i.e., the path by which one learns new features of the language is rough & unclear. I think we need to face these less “pretty” sides of the language if we want to start talking about it as a generally applicable tool, and perhaps develop some useful solutions/workarounds.
I really like what you’ve done here, my criticism is mainly of the title I suppose. I would be really happy to see APL’s theoretical capabilities being applied to actual ML problems. It will probably always be weaker on the side of readability & friendly development environment, but I hope these can either be mitigated in the language / its descendants as they exist, or else addressed in a suitable successor.
This goes to an empty page. What is this?
Looks like it got deleted, I archived it here:
Uh oh, i thought that dpaste was supposed to keep it for a year… sorry!
The “cached” link above has a copy https://archive.is/http%3A%2F%2Fdpaste.com%2F3Z4K4B0
Here’s a direct link.
archive.is is not reliable. Best way to share code snippets like this is to use gitlab/github snippets feature. Or even something like txti.es (which has been around for a long time and they don’t delete pages AFAIK)