If you look at the ranks on the NuVoc main page, or at the start of the
page for fork or hook, you will see that the ranks for both are all
infinite.
Verb rank is one of the most important concepts in J, and one of the
hardest to explain clearly. NuVoc has several pages devoted to it, as
you can see in the list of ancillary pages below the main table.
They're worth reading.
Henry Rich
On 12/3/2017 9:06 AM, Joe Bogner wrote:
Thanks for the suggestion to reread and dig into / . I reread the docs and
they are clear now. The bits that stick out to me that are relevant to my
problem:
"1. If the rank of u is not 0, it doesn't produce a table"[1]
This seems to be a reference to "u/ y is equivalent to x u"(lu,_) y where
lu is the left rank of u ."[2] in the dictionary
So back to your first reply
This verb has left rank of 0 which means it will result in a table
(0&= @ |~) b.0
_ 0 0
Whereas this is _ meaning it won't be a table
(~: *. (0&= @ |~)) b.0
_ _ _
But if we force the left rank it will return a table:
(~: *. (0&= @ |~))"(0,_)~ (5,9,2,8)
0 0 0 0
0 0 0 0
0 0 0 0
0 0 1 0
(~: *. (0&= @ |~))"0/~ (5,9,2,8)
0 0 0 0
0 0 0 0
0 0 0 0
0 0 1 0
The only remaining question is: are all forks infinite rank? I tested with
b.0 different examples and they all seem to be. I assumed the rank of a
fork would be the rank of the middle tine, g. If all forks aren't rank
infinite, what determines the rank of the fork? Admittedly my rank
knowledge is still developing even after several years of J use
[1] - http://code.jsoftware.com/wiki/Vocabulary/slash#dyadic
[2] - http://www.jsoftware.com/help/dictionary/d420.htm
On Sat, Dec 2, 2017 at 3:49 PM, Henry Rich <[email protected]> wrote:
Please elaborate on what confused you in that article. [May I say, if you
want to learn about x u/ y, there's much more information on the page for
that primitive rather than the page for {y ].
The inner verb rank of u/ DOES matter. It's crucial. Please read the
page on x u/ y and then tell me if you still think the docs need more work.
Henry Rich
On 12/2/2017 3:07 PM, Joe Bogner wrote:
Thanks Henry & Raul - I figured it was rank but couldn't figure out why. I
guess I assumed it would somehow use the rank of the tines.
This NuVoc article is what tripped me up -
http://code.jsoftware.com/wiki/Vocabulary/curlylf
Specifically this example got me thinking that the 'inner' verb rank
mattered, but it was just my misread of the parentheses (there is no inner
verb!)
0 1 (<@,"0)/ 7 8 9
vs
0 1 (<@,)"0/ 7 8 9
vs
0 1 <@,"0/ 7 8 9
all are the same, but it doesn't mean that placing rank inside the verb
for
the / adverb matters. Sharing in case it helps someone else...
Thanks again
On Sat, Dec 2, 2017 at 2:39 PM, Henry Rich <[email protected]> wrote:
Rank.
(~: *. (0&= @ |~)) b. 0
_ _ _
(0&= @ |~) b. 0
_ 0 0
~: b. 0
_ 0 0
Henry Rich
On 12/2/2017 2:34 PM, Joe Bogner wrote:
I was working on my adventofcode solution earlier today and was stuck and
still can't figure out why this doesn't work.
Take this expression.
(0&= @ |~)/~ 5 9 2 8
1 0 0 0
0 1 0 0
0 0 1 0
0 0 1 1
And this expression
(~:)/~ 5 9 2 8
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
Why can't I combine it into a single fork to AND the two tines?
(~: *. (0&= @ |~))/~ 5 9 2 8
0 0 0 0
Instead I have to do this
(~:/~ *. (0&= @ |~)/~) 5 9 2 8
0 0 0 0
0 0 0 0
0 0 0 0
0 0 1 0
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
---
This email has been checked for viruses by AVG.
http://www.avg.com
----------------------------------------------------------------------
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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm