3 ms·
APL fascinates me, but it's very hard to understand. I haven't found any intellectual footing as it's so dissimilar to what I've learned already. Would you hav
by jrq 8y ago
APL fascinates me, but it's very hard to understand. I haven't found any intellectual footing as it's so dissimilar to what I've learned already.
Would you have any good book recommendations? Or any recommendations, really? I'm just asking in the chance that you do.
- jacquesm 8y agoAPL really is no harder to understand than any other programming language, in a way it is easier than most because you can look at the whole program at once without being bothered by all the cruft of loops and such. You're probably mostly thrown off by the symbols. There was a gorgeous article submitted a couple of days ago: http://www.jsoftware.com/papers/50/ http://www.jsoftware.com/papers/50/ That should serve as a good intro.
- kazinator 8y agoHaving a whole program in your field of view isn't the same thing as comprehending it all at once. That would be a horrible fallacy to assert. Software Engineering can be regarded as a discipine in which we strive for the understandability of programs which cannot possibly fit into a person's field of view all at once.
- jacquesm 8y agoNo, it isn't the same thing. But it does make comprehension easier. You can get a feel for this by making a text editing window really small, say 10 x 20 characters and then trying to comprehend an otherwise perfectly legible program through that window. It's going to be much harder than when you have more overview. This is also why we make diagrams to show a simplified version of a program to aid understanding. APL went all the way with this and assigned many reasonably complex operations on complex datastructures to single character symbols. Once you know those symbols the code is about as hard to understand as any other language that you've mastered. It's just that because the symbols are not used in any other language family that you are going to struggle quite a bit in the beginning. It's like trying to ready Cyrillic.
- kazinator 8y agoFitting an entire function on the screen is useful compared to just a fraction of a function. (However, if you can only see a fraction of a function, the problem is with the function, not with your screen.) Having a hundred functions in view at once (full definitions) is way, way past the point of diminishing returns. And we have folding editors so you can see function headers: names and arguments. By the way, a 10x20 window: isn't that like a wasteland of wast proportions to an APL programmer?
- gh02t 8y agoI was joking, I have actually used APL a bit and quite enjoy it. Array based programming is quite intuitive once it clicks in your head and I think at least a conceptual understanding of APL is very valuable even when using other languages (e.g. NumPy in Python).