I, for one, find Oleg's solution to be much more clear. The other
involves fiddling with verbs by their representation. I prefer letting
Do (".) handle such things without exposing detail. Thanks, Oleg!On 5/2/09, Oleg Kobchenko <[email protected]> wrote: > > Did you try tacit verb? > (Sorry if duplicated, hard to follow the thread) > > is=: [: ". [ , '=:' , ] > > 'v1' is '+/ % # ' > > v1 3 4 5 > 4 > > > isV=: [: ". [ , '=: 3 : '' ' , ] , ' '' '"_ > > 'v3' isV '2+y' > > v3 > 3 : ' 2+y ' > v3 4 > 6 > > I believe the advantage of tacit with '=.' is that it > will allow to assign likewise locally within an explicit scope. > > > > >> From: "Sherlock, Ric" <[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 '' >> assigns to a new verb 'myname' >> >> So if 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. >> >> 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 > > > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
