Readability: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 3: | Line 3: | ||
=== Gilman & Rose === | === Gilman & Rose === | ||
In [[Books#APL_.E2.80.95_An_Interactive_Approach|APL ― An Interactive Approach]], the authors describe the following code, which computes the correlation coefficient, as “almost pornographic”: | In [[Books#APL_.E2.80.95_An_Interactive_Approach|APL ― An Interactive Approach]], the authors describe the following code, which computes the correlation coefficient, as “almost pornographic”: | ||
:<source lang= | :<source lang=apl inline>r←(+/x×y)÷((+/(x←x-(+/x)÷⍴x)*2)×+/(y←y-(+/y)÷⍴y)*2)×.5</source> | ||
By splitting the expression intro even a moderate number of pieces, a symmetry is revealed: | By splitting the expression intro even a moderate number of pieces, a symmetry is revealed: | ||
<source lang= | <source lang=apl>yVar←+/(y-(+/y)÷⍴y)*2 | ||
xVar←+/(x-(+/x)÷⍴x)*2 | xVar←+/(x-(+/x)÷⍴x)*2 | ||
r←(+/x×y)÷(xVar×yVar)×0.5</source> | r←(+/x×y)÷(xVar×yVar)×0.5</source> | ||
Line 75: | Line 75: | ||
The Multics APL manual goes on to use the terms ''monstrosity'' and ''eyesore'' for code published in an APL newsletter, such as | The Multics APL manual goes on to use the terms ''monstrosity'' and ''eyesore'' for code published in an APL newsletter, such as | ||
:<source lang= | :<source lang=apl inline>Z[B+(C∧X∊D)/⍳⍴X;]+(24p' Y9 X9 ')[(C←(-≠\''''=X)∧A≤⍴D)/A←(D←'⍵⍺')⍳X;]</source> | ||
The manual suggests that this code should be split into the following expressions: | The manual suggests that this code should be split into the following expressions: | ||
<source lang=apl> | <source lang=apl> |