first you are using + monadially here. A conjunction (most of them) becomes a verb after it has 2 arguments bound to it. So,
f =: +^:10 is a dyadic (or monadic verb, but monadic + is not that interesting) 5 (+^:10) 0 50 5 (+^:10) 2 52 A way to double 10 times, that looks a bit similar but is a monadic adverb 10 (+:^:) 2 2048 A dyadic adverb needs 2 parameters on the right f =. +^: 5 (10 f) 2 52 ----- Original Message ----- From: Jon Hough <[email protected]> To: "[email protected]" <[email protected]> Cc: Sent: Sunday, August 2, 2015 11:26 AM Subject: [Jprogramming] Understanding ^: I'm attempting some functions that use verb power (^:) , but I'm a little lost when it comes to the concept of what is getting iterated. For example, in pseudo code: function f(y){ a = y; //cache initial value counter = 10; while(counter-->0){ y = y + a; } return y;} In the above code, y was initially cached for later use. Trying this in tacit J I did: f =: +]^:10 which completely gives the wrong result. Obviosuly the above function is not interesting, and I'm attempting more interesting things, but the principle is the same, how can I cache the initial value for use in each iteration when using ^:? Do I need to use explicit verbs instead? Thanks, Jon ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
