On Sat, Jan 12, 2013 at 9:01 PM, Jose Mario Quintana <[email protected]> wrote: > If I interpret you correctly, please advice if I do not, you are > stating that the rank, domain and mapping of the generic verbs (u @ v) > and (u at v) are the same but you are not (directly) stating that they > are equivalent within a meaningful (without cheating) context, for > example, you are not (directly) stating that (u @ v @ w) and (u at v @ > w), or (u @ v (@ w)) and (u at v (@ w)), or (u @ v (d.1)) and (u at v > (d.1)) are each pairwise equivalent; or maybe your are (were) claiming > that, and this is what you mean by “range” of a verb? The latter > concept still puzzles me; I searched the entire dictionary but I did > not find anything relevant; a clarification would be welcome.
"range" is the term I learned in school for what some people call the "codomain". It's represents the set of results which a function can produce. I believe that u @ v and u at v operate the same way. So u at v @ w and u @ v (@ w) should operate the same way. However d. is concerned with issues besides the definition of the verb it is given -- it is also sensitive to the spellings used. > Should the replacement have worked? In other words, is the different > treatment of (@) and (at) by (d.) a bug rather than a feature? I > strongly suspect the answer is yes. Why? It's arguably a bug because. That said, there are two possible ways the bug can be identified: a) It's a bug because the result of +:@*: d. 1 has infinite rank while the dictionary says that +:@*: is being treated as if it has zero rank b) It's a bug because we should never use the result of d. at any rank other than 0. Personally, I lean towards interpretation a - here, the bug is in the interpreter and can be fixed. Interpretation b says that the bug is in user code, and that seems mysterious to me (but interpretation b does give us compatibility between current versions of J and future versions where the bug is fixed). Anyways, just as a reminder, http://www.jsoftware.com/help/dictionary/dddot.htm says: u d. n is like u D. n except that u is treated as a rank-0 function. And given that +:@*: is rank 0 and d. is intended to treat it as rank 0, I cannot understand how a result with infinite rank properly represents the intended result from d. -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
