|
|
|
|
|
by gandercrews
2237 days ago
|
|
its a golfed example to show that its possible to use APL as a cli tool. I would not put any code into production that looks like this. Generally it would go into a library. APL has an initially steep learning curve, because it is so distinct historically from other languages. But it is a quite simple language once you learn it. 1. Every statement is executed right-to-left. Statements are executed top to bottom (or left to right with ◊ as a separator). 2. The only precedence rule is parentheses 3. Functions can be called with one operand (monadic) or two (dyadic) 4. Values in APL have a shape (dimensional size), a rank (number of dimensions), and a ravel (a list of elements). Values can contain other values (nesting) {} define lambdas
⍺ is the left operand
⍵ is the right operand
⍶/⍹ are the left/right operators (higher-order functions)
← assignment
◊ statement separators
¨/\⌿⍀⍣⍤⍨ builtin higher order functions
After some familiarity it becomes as easy (or easier) to read as any other language. You can encode a remarkable conciseness of expression into each lambda, that you plumb together (similar to unix pipes in a way) in higher order patterns. |
|