I can't see any newlines in this post, so it's very hard to see what was
executed. everything runs together.
Henry Rich
On 2/24/2014 10:27 PM, Jon Hough wrote:
As a beginner in J, I am attempting to get a footing in tacit verbs.Lots of
things still confuse me, so I want to go through my trial-and-error working,
and hopefully, if someone has the time, they can explain some things to me.
First I wanted to find the largest prime divisor of a given number (integer). I
can output that fairly quickly after rummaging around the J dictionary:
{: 3 p: 567That works fine.OK, so I want to wrap that into a tacit verb.Here
was my first attempt:
bigdiv =. {: 3 p:|syntax error| bigdiv=. {:3 p: I am not sure why this fails. Apparently we need a
& between the two verbs "{:" and "3 p:". Could anyone explain why? I thought for
monadic verbs putting & in between them is superfluous (incidentally same as putting @).
So my next attempt is to stick a & between the verbs:
bigdiv =. {: & 3 p: bigdiv 45|domain error: bigdiv| bigdiv 45
I would like to know what the cause of this domain error is.
Next I put a & between the 3 and p:bigdiv =. {: & 3 & p: bigdiv 45|domain
error: bigdiv| bigdiv 45 That was a pure guess.
In exasperation I decided to build my verb by making smaller verbs first.
divs =. 3 & p: divs 542 3 3 3 This works, but I am unsure why I need the &.
Now I have divs I can make bigdiv:
bigdiv =. {: & divs bigdiv 543 This works ok. Again why do I need the &?
Next, I wanted to make bigdiv work on a list, so here is what I did:
divs =. 3 & p:"0 divs 12 3 4 52 2 33 0 02 2 05 0 0
bigdiv =. {:"1 & divs bigdiv 12 34 233 17 23
This seems to work perfectly. Is this the best way to go about doing this in J?
i.e. If I want to get the largest prime divisor of each element of a list then
my bigdiv does the job perfectly. Is there a better/faster/more J-esque way?
Finally, why when I try to rebuild my tacit verb does it fail?
bigdiv =. {:"1 & 3 & p:"0 bigdiv 3 4 23 190|domain error: bigdiv|
bigdiv 3 4 23 190
Any and all help appreciated. Thanks in advance.
Regards,
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm