12 comments

[ 2.9 ms ] story [ 22.6 ms ] thread
Cool project! Was there a particular reason not to use ocamllex and menhir?
Always nice to see more open-source K implementations. Are array languages finally seeing some much-deserved attention?
I just had an APL day last week. gnu-apl + emacs apl-mode was pretty fun. Array based thinking with repl like interaction.. gosh what a bliss.
Once you get past the initial learning curve, array algorithms are a wonderfully natural way to think about problem solving. The toolkit you get with APL or K is compact but capable of concisely solving a shocking range of problems. Most of the functional languages I've played with aren't half as effective, even with a much larger standard library.
I dont' know, it feels APL is a brilliant but still 'DSL' compared to FP.
Which domain would this DSL be specific to?
As in less general than recursive functions. But I admit it's a very subjective point.
Personally, I feel the "recursion is the only way to iterate" purity is practically harmful, even though it is quite elegant for theory.

K/J/Q/APL2 and friends[0] have isolated iterative constructs that cover IME 98% of what's needed (each, fold, scan, fixed point, ...) in a way that's just as simple to analyze as recursion[1]. These languages do like DSLish for the first 10 or 20 examples you see - but by the 200th example, it is clear the domain it is specific to is "mostly everything"

[0] I'm not considering APL1 as part of the modern family - it had Fortran-style computed gotos for control flow.

[1] Although there's about 10 times as many of them, so it's not quite as elegant.

What are the differences between K and J? The latter has a complete free software implementation.
Short version: K is a tight, fast exercise in minimalism. It takes after Scheme a bit more than most other APLs. Good at dealing with "ragged" and mixed-type data. J is a larger language with more "batteries included". It keeps the traditional APL emphasis on uniform, rectangular data and has a number of advanced features.