There aren't that many ways to generate a syntax error. You can look it up in Appendix D of the dictionary. http://www.jsoftware.com/help/dictionary/errors.htm
----- Original Message ----- From: "Sherlock, Ric" <[email protected]> Date: Thursday, April 23, 2009 21:21 Subject: [Jprogramming] assigning a verb to a name To: Programming forum <[email protected]> > I was about to post this as a question but finally figured out > the answer. I'll post it anyway in case it is of help to others: > > I want to create a verb "defverb" such that > 'myname' defverb '<my sentence>' > assigns <my sentence> to a new verb 'myname' > > So if <my sentence> was: > % *: y > I'd end up with a monadic verb called myverb that took the right > argument, squared it and found the reciprocal. > > ('myverb')=: 3 : '% *: y' NB. > This works > > tstx=: 'myverb2' > tsty=: '% *: y' > (tstx)=: 3 : > tsty NB. This works > > verbstr=: 4 : '(x)=: 3 : y' NB. define verb > to do it > verbstr > 4 : '(x)=: 3 : > y' NB. looks ok > 'myverb3' verbstr '% *: y' NB. Doesn't work! > |syntax error: verbstr > | 'myverb3' verbstr'% *: y' > > Why? > > > > > > > > An explicit verb is only allowed to return a noun. > <http://www.jsoftware.com/help/dictionary/d310n.htm>Solution. > verbstr=: 4 : ('(x)=: 3 : y';'$0') > > 'myverb3' verbstr '% *: y' > myverb3 4 3 > 0.0625 0.111111 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
