Hacker News new | past | comments | ask | show | jobs | submit login

I don't know if it will be of much use but take a look at http://www.jsoftware.com/ it is similar to apl in style



for the sake of language geekdom, it would be done in J something like this:

  - +/ p * ^. p
where p is the array. you can even remove the duplication of the array with a so-called hook:

  - +/ (* ^.) p


J took one of APL's chief positives, the only thing that made it possible to look at absurdly dense APL code and make sense of it, and destroyed it. APL has a "one character == one primitive" relation, except for user symbols which all have to be letters. So no matter what jumble of crap you had, you could tokenize it easily starting from anywhere. J has variable length characters.


jumble of crap you had, you could tokenize it

I don't grok this argument, when would one like to have that?

For me personally J is all about tacit functional programming. Any APL have this?


Put another way, if you see sigma in an APL program, you can understand what that is without knowing its context. Single characters in J do not have this property; < is different from <. is different from <: (and sometimes surprisingly different; =. defines a local and =: defines a global), and in a lot of fonts it's not hard to mistake one for the other.

J, to me, took the worst features of APL (the profusion of symbols that only loosely resemble anything else you've ever seen) and makes it even worse, because at least the APL symbols were (usually) visually distinct! From the J examples page are gems like this

  var =: ~.@(] , |:&.> , |.&.> , |."1&.>)^:3
which in the proportional font they use makes for a real entertaining time telling , from ,. from ..


As is k. (http://kx.com/)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: