Just to explain my confusion, and with apologies for my terminology... Since iota (and i.) return an "off the scale" index to mean "not found", I assumed that a "not found", or "none of the above" category would return a count (in the case of #) in the final (1+$nub) item of the result. My uneducated guess, looking at the results of u="<" or" ," on the same trigrams I was applying to #/. was that instead of the 3's I would have expected, it seemed each was being used in an iota search of the left argument rows to add to the tally of each unique (first encountered) member of the x argument. The result is the length of the nub of the left argument, so the rest of the left argument seems, for a u of #, to be ignored and not needed, at least if x has duplicate entries. And if that is the case, it seemed that a final "none of the above" element (indexed by the "not found" result of my probably mythical i. search) for each y argument row ought would just fall out.
But I did give absolutely no thought to other verbs as u. (Other than wonder which might help be understand the behavior of /. .) Don't take the time to point out my stupidity--I'm happy to wait until I'm smart enough to understand it better. And thanks for checking in to the discussion, Roger. > On Oct 13, 2019, at 10:21 PM, Roger Hui <[email protected]> wrote: > > Oh no, it's not because I said so. As I said, it's because this particular > definition, the current definition, says so. If you think the definition > should be / could be something else, we can discuss it. Truth be told, I > don't understand how you can have keys that don't have corresponding data, > or data that don't have corresponding keys. Sounds like a completely > different computation than _key_. > > _Key_ (the current definition) is cognate with the GROUP-BY statement in > SQL, the monadic = function in k, the generalized beta in the Connection > Machine. > > > >> On Sun, Oct 13, 2019 at 6:36 PM 'Jim Russell' via Programming < >> [email protected]> wrote: >> >> And only you, Roger, well deserve the right to answer "Because I said so!" >> I was only considering the case of u=#, and remembering that #/. was >> described as in the i. family, and seeing that... >> >> Well never mind. Sorry. >> >> >>> On Oct 13, 2019, at 7:50 PM, Roger Hui <[email protected]> >> wrote: >>> >>> >>>> >>>> why do the sizes of the x and y argument to Key need to match? >>> >>> Because the x u/. y key adverb is _defined_ so that >>> >>> - items of x specify keys for _corresponding_ items of y and >>> - u is applied to each collection of y having identical keys. >>> >>> You can argue that the definition should be something else, but it is not >>> debatable that if you are going to use u/. then items of x must have >>> corresponding items in y, that is, x and y must have the same number of >>> items, that is, {.$x must be the same as {.$y . x and y need not have >> the >>> same shape, but the leading element of their shapes must be the same. >>> >>> >>> >>>> On Sun, Oct 13, 2019 at 3:58 PM 'Jim Russell' via Programming < >>>> [email protected]> wrote: >>>> >>>> Rick: My ability to read tacit expressions is so poor that I overlooked >>>> the fact that the your quoted output did not come directly from the Key >>>> expression; silly me, I thought there was some form of the >>>> modifiers/arguments to Key that yielded the results of two inputs. >>>> >>>> (In contrast to your skill, it took be about a half a day to come up >> with >>>> the tacit dyad(?) mmjnn=:(; ,.) to glue together my trigram table and >> one >>>> result vector.) >>>> >>>> So I wonder if I dare ask again: >>>> why do the sizes of the x and y argument to Key need to >>>> match? >>>> >>>> (Thanks again for all the help!) >>>> >>>>>> On Oct 12, 2019, at 5:16 AM, Ric Sherlock <[email protected]> wrote: >>>>> >>>>>>> Or to summarise by trigram: >>>>>>> >>>>>>> (~.@; trig);|: <: #/.~&> supertrig >>>>>>> >>>>>>> +---+---+ >>>>>>> >>>>>>> |ggt|1 2| >>>>>>> >>>>>>> |gta|2 0| >>>>>>> >>>>>>> |taa|1 1| >>>>>>> >>>>>>> |aaa|2 0| >>>> >>>> ---------------------------------------------------------------------- >>>> 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
