Hello, I read Roy A. Sykes, Jr.'s Whizbang! article in APL Quote Quad vol 27, no 2. The title is APL thinking. I found it quite instructive even though I know close to nothing about APL syntax.
I have a few questions on it. The problem that the article solves through is computing the total cost of some heating oil using the following rate structure: First 20 gallons ... 90c per gallon Next 40 gallons ... 80c per gallon Remainder ... 75c per gallon For example, c=: 20 40 p=: 0.9 0.8 0.75 q=: 35 and then the total cost is 30 I have translated the first apl solution into J : +/p* 0>.(c,q)<. q - 0,+/\c The article continues to expand q as a vector. Firstly, it replaces +/p* with "inner product". I suppose that is, p (+/ .*)~ And then it replaces (c,q) part with something more complexed. It gives two possibilities: ((($q),$c)$c),q or >(<c), each q In the former possibility, I just replaced the original rho function with J's shape($), and it doesn't work. I had to figure out ((($q),$c)$c),"1 0 q Am I doing it right? I suppose APL's concatenation quite different from J's. Now the article continues the task and replaces "q -" part with outer product, and I think it could be translated into J as "q -/" I wonder now. Is it necessary to do all this stuff in J as well? Wouldn't simply applying rank adverb to verbs work? Doesn't APL have rank operator? Any advantages of doing this replacement(inner, outer, and etc) to get a differnt rank verb in J? Finally, the article looks toward making a verb and handling arguments. In order to avoid taking several arguments boxed into one, it makes a new concept, price schedule. PriceSched=:0 20 40 80 ,: 0.9 0.8 0.75 0.7 And a verb named OILPRICE is dyadic with PriceSched as x arg and Gallons as y arg. I might instead do, +/ p * c bucket q Overall, the article is very nice for learning problem solving mind in APL(or J). June ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
