Not a bug... Raul's example: First insert symbols from left to right.
+`*/3 4 5 23 (and J executes from right to left.) ( "reverse Polish") (Hopefully the correct term is) Linda -----Original Message----- From: Programming [mailto:[email protected]] On Behalf Of Michal Wallace Sent: Monday, February 22, 2016 5:24 PM To: [email protected] Subject: Re: [Jprogramming] Am I understanding m/y ? The example in the docs is ambiguous, and probably ought to be replaced, since the sequence of inserted verbs both starts and ends with +. I'm not sure that I'd find either order to be more or less useful, but the existing order does have one nice advantage, in that it allows you to "factor out" verbs in an otherwise constant expression, and keep them in the original order: 3 * 2 + 1 -> *`+/3 2 1 On Mon, Feb 22, 2016 at 4:16 PM, Raul Miller <[email protected]> wrote: > Note also that if (3*4+5) -: +`*/3 4 5 this gerund mechanism would be > useful for implementing a solution to your minimization problem, using > something like > C#inv!._1 (#~ 0 1$~#)|.+`<./\.|. (C=:D~:_1)#D,.P > > That's untested code, for obvious reasons, but I think it would be in > the right ballpark. > > So my question is: is the existing implementation useful for anything? > > Thanks, > > -- > Raul > > > > > On Mon, Feb 22, 2016 at 5:07 PM, Raul Miller <[email protected]> > wrote: > > Spelled out in nuvoc doesn't mean it's not an error: > > > > It's quite possible to document erroneous behavior. > > > > -- > > Raul > > > > On Mon, Feb 22, 2016 at 4:52 PM, Henry Rich <[email protected]> > wrote: > >> Inserts from the front. > >> > >> +`*/3 4 5 > >> > >> 23 > >> > >> 3+4*5 > >> > >> 23 > >> > >> > >> Spelled out in > >> > >> http://code.jsoftware.com/wiki/Vocabulary/slash#Details > >> > >> Henry Rich > >> > >> On 2/22/2016 4:21 PM, Raul Miller wrote: > >>> > >>> http://www.jsoftware.com/help/dictionary/d420.htm says: > >>> > >>> m/y inserts successive verbs from the gerund m between items of y, > >>> extending m cyclically as required. Thus, +`*/i.6 is 0+1*2+3*4+5 > >>> > >>> But it does not include an example of m/y where y contains an odd > >>> number of elements. > >>> > >>> From the description, I would expect +`*/3 4 5 to give the result > 3*4+5 > >>> > >>> However: > >>> 3*4+5 > >>> 27 > >>> +`*/3 4 5 > >>> 23 > >>> > >>> I'm thinking that this might be a bug in the interpreter. > >>> > >>> Is there some application, though, that requires the current behavior? > >>> > >>> Thanks, > >>> > >> > >> ------------------------------------------------------------------- > >> --- 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
