That is very nice solution, and if I had remembered the evoke adverb, I might have settled for it. Raul's solution actually generates a verb, and not the string representation of the member. That is preferable because all callees will know how to execute a verb, and won't detroy the reference by evoking it.
The other problem is that this technique forces you to write all your class verbs to take the instance variable as a parameter (x), (so that they are f. proof) because evoking the string loses the entire context for the function that you normally have if you called v2__o. The verb v2_3_ will always execute correctly, but if the verb references instance variables, then as a string, 'v2_3_'~ will fail. ----- Original Message ---- From: Oleg Kobchenko <[EMAIL PROTECTED]> To: Programming forum <[email protected]> Sent: Monday, October 30, 2006 8:00:32 PM Subject: RE: [Jprogramming] passing object functions to other objects Actually if it's just a name generator (like Raul's refname), it can be a dyad, not necessarily a conjunction. ref=: 4 : 'x,''_'',(":>y),''_''' 100 ('v1' ref 'abc')~ ('n1' ref 'abc')~ 223 Verb allows additional operations ((;:'n2 n3 n4') ref&.> <'abc')=: i.3 ((;:'n2 n3 n4') "[EMAIL PROTECTED]&> <'abc') 0 1 2 Conjunction is necessary, when a value is deferenced. at=: 2 : '(m,''_'',(":>n),''_'')~' 'n1' at 'abc' 123 100 'v1' at 'abc' 'n1' at 'abc' 223 This will not allow assignment, but it conceils the redirection. --- Oleg Kobchenko <[EMAIL PROTECTED]> wrote: > It depends on what class the value of name is: > verbs cannot return verbs. So conjunction is used: > > of=: 2 : 'm,''_'',(":>n),''_''' > > n1_abc_=: 123 > v1_abc_=: + > > 'n1' of 'abc' > n1_abc_ > ('n1' of 'abc')~ > 123 > > 'v1' of 'abc' > v1_abc_ > ('v1' of 'abc')~ > + > 100 ('v1' of 'abc')~ ('n1' of 'abc')~ > 223 > > o=. conew 'ptest' > ('n2' of o) > n2_1_ > > ('n2' of o)=: 456 > ('v2' of o)=: - > > ('n2' of o)~ ('v2' of o)~ 400 > 56 > > ('codestroy' of o)~'' > 1 > n2_1_ > |locale error > | n2_1_ > > > --- "Miller, Raul D" <[EMAIL PROTECTED]> wrote: > > > Oleg Kobchenko wrote: > > >What are we trying to achieve here? > > Given a name and a locale, a mechanism to create a reference > > to the named member of that locale which remains valid in an > > arbitrary locale. > > -- > > Raul > > > > > ____________________________________________________________________________________ > Cheap Talk? Check out Yahoo! Messenger's low PC-to-Phone call rates > (http://voice.yahoo.com) > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ____________________________________________________________________________________ Cheap Talk? Check out Yahoo! Messenger's low PC-to-Phone call rates (http://voice.yahoo.com) ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
