When I want to see inside the execution of a tacit verb, I usually
introduce verbs that let me see or grab values.
For example:
(#~ [:(e. p:)+/\@:=&' ')'this is an example of something'
an example something
So here's a couple verbs, to see values and to grab them:
see=: 1!:2&2
grab=: 3 :'KEEP=:y'
And here's how they might look in action:
(#~ [:see@(e. grab@p:)+/\@:=&' ')'this is an example of something'
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1
an example something
KEEP
13
Obviously there are limits to this technique, so it requires a little
thought and you especially need to think about rank. That's not
entirely a bad thing.
(#~ [:see@(e. grab@:p:)+/\@:=&' ')'this is an example of something'
What do you think KEEP looks like this time?
Thanks,
--
Raul
On Wed, Feb 26, 2014 at 3:03 AM, Linda Alvord <[email protected]> wrote:
> Trace has a problem. It works fine with an explicit statement.
>
> require'trace'
> trace 'f=:{: 3 p: 23434'
> --------------- 2 Dyad -------
> 3
> p:
> 23434
> 2 11717
> --------------- 0 Monad ------
> {:
> 2 11717
> 11717
> --------------- 7 Is ---------
> f
> =:
> 11717
> 11717
> ==============================
> 11717
>
> This is ok. Now try the tacit expression.
>
> f 23434
> 11717
> f
> [: {: 3 p: ]
>
>
> trace 'g=:[: {: 3 p: 23434'
> --------------- 2 Dyad -------
> 3
> p:
> 23434
> 2 11717
> --------------- 1 Monad ------
> {:
> 2 11717
> 11717
> --------------- 0 Monad ------
> [:
> 11717
> |domain error: executet
> | t_z=. ([:)(11717)
>
>
> Is trace not appropriate for tacit verbs?
>
> Linda
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of David Lambert
> Sent: Tuesday, February 25, 2014 1:13 AM
> To: programming
> Subject: Re: [Jprogramming] Finding Largest Prime of Numbers (Tacit)
>
> j is a multiple instruction single data language and has many many ways
> to pass data, including as far as I can tell all combinations of
> monadic, dyadic verbs considering single verbs, their obverses where
> practical, the trains of even numbers of verbs, and of odd numbers of
> verbs with more than two verbs. Trains have infinite rank, that's why
> we cannot consider a single verb as a train. The train/rank question
> often appears first with table. (Usually) use the train atomically, at
> rank 0 .
>
> X train"0/ Y
>
> Assigning a list of verbs to a proverbial name is a most surprising
> aspects of j, one which I didn't realize from the documents for a long
> long time. Where stated "Substituted as if in parentheses." is an
> absolutely huge short sentence. Parentheses completely change (what I
> thought I had as) the sentence. If
>
> {: q: 45
> 5
>
> biggest_prime_factor_wrong =: {: q:
>
> biggest_prime_factor_wrong 45
> |domain error: biggest_prime_factor_wrong
> | biggest_prime_factor_wrong 45
>
> biggest_prime_factor_wrong is a hook with hook data passing. {: doesn't
> have a dyadic definition. Hence the domain error of
> ({: q:) 45 NB. equivalent to 45 {: q: 45
>
> As far as I can tell, cap in a fork effectively means to use the monadic
> definition of the verb immediately to that cap's right.
>
> biggest_prime_factor =: [: {: q:
>
> biggest_prime_factor 45
> 5
>
> Other choices. Of those that are correct for a purpose the performance
> can drastically vary. Use the largest chunks possible to keep j from
> devoting resources to checking data types, frames, and item rank.
> Conjunctions here bind first, and from left to right form verbs:
>
> {:@q: 45
> 5
> {:@:q: 45
> 5
> {:&q: 45
> 5
> {:&:q: 45
> 5
>
> I've personally chosen to write verbs tacitly in the interpreter session
> with parentheses, using under, at, atop, compose, or appose when I can
> so that I can directly create proverbs. Having little faith in the
> future ordering of prime factors, I'd use bpf =: ([: >./ q:) ,
> emphasizing the train with parentheses.
>
> Stick with j though it may take years, and please pounce on my errors,
> David Lambert
> ----------------------------------------------------------------------
> 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