If you want to make unique names for the monad and dyad definitions. Shouldn't you also make it invalid to use the name for the wrong usage?
m1=: ([ + +) : [: d1=: [: : ([ + +) 3 d1 4 10 3 m1 4 |domain error: m1 | 3 m1 4 On Wed, Nov 25, 2015 at 10:12 PM, bill lam <bbill....@gmail.com> wrote: > A long tacit train of symbols can be difficult to parse > especially when we don't know whether its usage is monad or > dyad. > > examples in J Phrases give hints like this, > m1=: [ + + > d1=: [ + + > > Ср, 25 ноя 2015, jprogramming написал(а): > > > Also the primitives addon can not translate from symbols to namedverbs > automatically because valency is unknown until actual > > execution. > > > > That's what I remember, and the primitives addons workaround is to give > 2 names to each builtin verb, and IndexOf 5 is valid even if nonsensical. > > > > Your proposal is a completely reasonable alternative, but its less > convenient and requires more typing effort. > > > > Consider Conjugate > > > > 3 ([ + +) 3j4 > > 9j4 > > 3 ([ + +@]) 3j4 > > 6j_4 > > ([ + +) 3j4 > > 6 > > > > all are valid ambivalently, but if you intended the 2nd and 3rd vs 1st > and 3rd then: > > > > > > ([ + conjugate) captures that intent. (includes option of no whitespace) > > > > > > with your proposal you would have to write either > > > > ([ + Conjugate@]) > > > > or > > > > (Right Plus Plus) NB. if 2nd meaning intended > > > > > > but that 2nd one is only valid if you call it dyadically and it doesn't > have any of the 3 mentioned meanings: > > > > 0 ([ + +) 3j4 > > 3j4 > > 0 (] + +) 3j4 NB. required call to match original monad. > > > > so that is another advantage to leaving the dyad primitives alone. You > can still make ambivalent verbs, and the dyad case may be the main > ambivalent intent. > > > > > > ----- Original Message ----- > > From: bill lam <bbill....@gmail.com> > > To: 'Pascal Jasmin' via Programming <programm...@jsoftware.com> > > Sent: Wednesday, November 25, 2015 11:40 AM > > Subject: Re: [Jprogramming] dyadic J > > > > I think ambivalent is difficult and not that intuitive for > > uninitiated users. Perhaps J (and APL) needed ambivalent > > partly because there were not enough symbols. Making named verbs > > either monad or dyad but not both, might make life of new users > > easier. eg. > > > > til =: i. : [: > > til 5 > > 0 1 2 3 4 > > 1 til 5 > > |domain error: til > > | 1 til 5 > > indexOf =: [: : i. > > 1 2 3 indexOf 2 > > 1 > > indexOf 2 > > |domain error: indexOf > > | indexOf 2 > > > > Also the primitives addon can not translate from symbols to named > > verbs automatically because valency is unknown until actual > > execution. > > > > > > -- > > regards, > > ==================================================== > > GPG key 1024D/4434BAB3 2008-08-24 > > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > > > > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > -- > regards, > ==================================================== > GPG key 1024D/4434BAB3 2008-08-24 > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm