[Jprogramming] Understanding ^:

'Pascal Jasmin' via Programming programming at jsoftware.com
Sun Aug 2 15:55:14 UTC 2015


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 <jghough at outlook.com>
To: "programming at jsoftware.com" <programming at jsoftware.com>
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


More information about the Programming mailing list