6 ms·
ELI – A System for Programming with Arrays
- JoachimSchipper 12y agoYou may also like http://prog21.dadgum.com/114.html http://prog21.dadgum.com/114.html, which is a slightly gentler introduction to the APL world.
- emmanueloga_ 12y agoCool, will check it out! There are lot of recommended books about a selection of languages regarded as more powerful/expressive/safer than the mainstream, but there's not so much good information about APL, I don't think. Every now and then, I hear different people give a hint about APL's power (not too noisily though... as if they did not want to completely give away the secret :). I keep wondering what problems are good fit for it. From far it doesn't look like a general purpose PL. To my untrained eyes it looks like some sort of query language that you can somehow bend into doing other things (in the same vein you can use SQL to render the Mandelbrot set [1] :). And then there's the whole clones/successors/spin offs situation. If I were to learn APL today, I wouldn't even know were to start. ELI looks like a good candidate. -- 1: http://wiki.postgresql.org/wiki/Mandelbrot_set http://wiki.postgresql.org/wiki/Mandelbrot_set
- RBerenguel 12y agoThere's GNU APL as a free APL implementation. As for learning APL... It's essentially learning what all its symbols do (there are some references for free online from the vendors of paid APLs, just avoid reading about their extensions,) even Wikipedia's page about APL works as a fast reference. I just use it to play around with numbers (yes, I also wrote a Mandelbrot set with it, a one liner that fits in a tweet,) and I'm trying to enhance a little its usability with a iPython-like in-browser "REPL" specially suited for my uses.
- pavlov 12y agoAPL is fundamentally cool and I'd like to think it will make a comeback. But it seems that most modern APL-derived languages focus on trying to squeeze everything into ASCII as concisely as possible. The following is an example of quite readable ELI with only a handful of symbols: c,[1.5]32+1.8*c<-$_10+5**!10 It's not bad, but when all you have is ASCII, dense notation will inevitably look like line noise. APL's graphical notation was one of its original inventions, but custom keyboards weren't a viable solution in the PC era... But today the situation is different again. High-DPI displays and touch screens are becoming standard. Would it be possible to reinvent APL notation to take advantage of high-res graphics and natural input methods? I'd love to see a tablet-only reinvention of APL that doesn't have a keyboard at all, just a number pad and painted gestures.
- klibertp 12y agoHonest question: if I know J, what can I get from learning APL? When first looking at array based languages the symbols used by APL scared me off and I decided to go with J, now I wonder if the very same symbol set wouldn't be better than pure-ascii.
- RBerenguel 12y agoI did otherwise when interested in the APL/J/K world: the ASCII use of J scared me and I decided to learn some APL first and then, go through J's ASCIIness (I'm still early in the APL part, though.) I find APLs symbols nice and terse, for some of the basic things it's like learning a good editor's shortcuts (be it emacs or vi[m].) You no longer think about how to do X, but what you want to achieve and your hands do it. Of course, I guess with J it's exactly the same once you know enough of it, I just took the other route.
- fvt 12y agoIMHO learning about a new language (without becoming proficient with it) is always good as it makes you think about the one(s) you're proficient with.
- 12y ago
- jarpineh 12y agoWe have some pretty significant matrix processor apps made with APL at the company. I'd really like to bring this functionality to our web apps, but it seems HTTP interface and external APIs are not available in these implementations. How can you use ELi, or any APL, with a web app? ELI site is down at the moment, but I read couple of their docs through google cache. There is support of compiling into C, but what about support for C interface? Or HTTP out of the box?
- JoachimSchipper 12y agoCGI - or, if you insist, FastCGI - works surprisingly well in 2014.
- jarpineh 12y agoWell, yes. Simple solutions work too. I was burned trying to write sophisticated Python stuff with plain CGI back in the days of Apache 1.3.
- JoachimSchipper 12y agoCGI does need something that can start in at most one geological age, yes. FastCGI is, well, faster, and is pretty simple as long as you don't support multiple concurrent requests to a single backend.
- couchand 12y agoAm I the only one reminded of Abre Los Ojos?
- mamcx 12y agoExist a array language with more "normal" sytax (ie: more like python than APL, so instead of symbol use words?)
- tlack 12y agoCheck out Q from Kx Systems. It uses an SQL-like dialect but is still powerful and expressive. Here are some simple example programs: http://code.kx.com/wiki/Sample_Queries http://code.kx.com/wiki/Sample_Queries
- mamcx 12y agoI have seen this before, but now I do the tutorial and the experience was not as bad as I have imagined. I hope to draw some idead from it (I'm triying to build a relational language)
- tlack 12y agoKeep me in the loop as you work on your project. I think the world has a lot to learn from array languages, and there still isn't a strong open source option. Contact info in profile.
- eggy 12y agoJ is another APL variant using ASCII instead of special symbols. You can easily label or rename any function to make it more readable, but it goes against the idea of learning the symbols for conciseness ala mathematical symbols. There is a recent blog entry about using J for spectral clustering in quantitative neuroscience [1] I am now very comfortable with J, and I am checking out ELI for comparison. I like the idea of the compiler, however, in J the math routines are very fast, well-crafted c libraries, so the interpreter is very fast with results. [1] http://procyonic.org/blog/?p=98 http://procyonic.org/blog/?p=98
- biomimic 12y agoHow well does it work when doing matrix multiplication or combining arrays in comparison to standard methods in R, matlab etc.?
- deleted 12y ago[deleted]
- wukefe 12y agoPlease check a mirror website here http://cs.queensu.ca/~chenh/eli/ http://cs.queensu.ca/~chenh/eli/, if you find the http://fastarray.appspot.com/ http://fastarray.appspot.com/ is not accessible. Hanfeng Chen
- deleted 12y ago[deleted]