You're trying to make a tacit version of:

{: 3 p: 567


3&p: is the verb you could bind to.  And:

 {:@(3&:p)

You can always ask for hint/solution by:

   13 : '{: 3 p: y'
[: {: 3 p: ]



----- Original Message -----
From: Henry Rich <henryhr...@nc.rr.com>
To: programm...@jsoftware.com
Cc: 
Sent: Monday, February 24, 2014 10:56:10 PM
Subject: Re: [Jprogramming] Finding Largest Prime of Numbers (Tacit)

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

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to