Conway's Game Of Life in APL (2009) [video]
youtube.com
youtube.com
2012 (1 comment): https://news.ycombinator.com/item?id=4611015
2012 (2 comments): https://news.ycombinator.com/item?id=3840273
2011: https://news.ycombinator.com/item?id=2547655
2010 (1 comment): https://news.ycombinator.com/item?id=1499630
2010: https://news.ycombinator.com/item?id=1041500
2009 (1 comment): https://news.ycombinator.com/item?id=451923
2008: https://news.ycombinator.com/item?id=204042
I really need to write code to do this.
I'd love to know the software engineering side of using APL. For the same reasons that using esoteric bashisms instead of say a clearer python script is bad form, I can't picture APL fitting into good engineering practice. Maybe once you think in APL, it all works out fine.
When you internalize the parsing model, it's downright trivial to read pretty much anything in it or its dialects.
If you have a good one in mind, please do recommend!
Last night I watched this: https://www.youtube.com/watch?v=IKfJRyoiBlY
(found via r/apljk, posted by Kari himself IIRC)
This one uses pretty simple constructs though, mostly ones I'm already familiar with. It (intentionally) avoided reading the more complicated expressions.
(Also if there's another active online community around APL & similar langauges, I'd like to know about it)
There's nothing slower than tying in APL code using a hard copy terminal. At least we had an APL keyboard on the terminal - I think it was a dedicated terminal. Sorry I don't recall the model.
I never did get to think in APL - if you've never used it there are lots of specialized characters, some that do a ton of operations with one character (arrays for example).
Anyways it's in the wayback days of PL/1, Snobol, Cobol, BASIC and Turbo Pascal.
RepLife ← {{⎕←''⋄⎕←↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}⍣⍺⊢⍵}
Try it with 10 RepLife ¯10 ¯10↑3 3⍴1 1 1 1 0 0 0 1 0
Another old paper on the Game of Life is Eugene McDonnell's "Life: Nasty, Brutish, and Short" (https://www.jsoftware.com/papers/eem/life.htm). This was where John Scholes got the idea of doing three rotations along each dimension. Interestingly, McDonnell attributes the idea to an implementation by Don Knuth in METAFONT!