Just need to decide what it is you are trying to accomplish. Thanks,
-- Raul On Sun, Nov 8, 2015 at 1:09 PM, 'Pascal Jasmin' via Programming <[email protected]> wrote: >>It would be best, I think, if you paired up "to" on the right of the > > sentence with a word on the left of the sentence which terminates the > dsl expression. My verbal imagination fails me at the moment, so I'm > going to use "from" > > The style of taking locales as the y parameter and returning a locale is > pretty useful. It also applies to pointers in my BN(openssl) and Arrayfire > addons. It simplifies composition > > 2 (3 add add) tbl > > A "hard" global current locale switch has problems with errors in that if a > dsl is meant to be used interactively, an error can leave you in an > unexpected locale. > > verbs that take and return pointers or locales have the performance advantage > that even though you normally want to see the side-effected "pretty printed > data value" inside the pointer or object, when you > just want to chain operations, you're not slowed down by the value extraction > process. > > Avoiding the from and to ideas also lets you use J methods on arrays of > pointers and objects. > > > > > > ----- Original Message ----- > From: Raul Miller <[email protected]> > To: Programming forum <[email protected]> > Cc: > Sent: Sunday, November 8, 2015 12:07 PM > Subject: Re: [Jprogramming] invoking object verbs without polluting global > namespace > > On Sat, Nov 7, 2015 at 9:07 PM, Joe Bogner <[email protected]> wrote: >> I'm playing with the idea of a domain specific language against a >> object that will have a fair amount of state. >> >> The syntax will be something like >> >> 4 add 2 add to tbl >> >> or ideally >> >> add 4 add 2 to tbl >> >> I think the latter will have difficulty implementing but would be >> preferred if possible. >> >> There will be many verbs in the dsl (maybe 10-15). >> >> Below is a proof of concept that works fine. I think using the 'to' to >> set a global to the current locale is kind of hacky, but I can live >> with that. >> >> My bigger concern is making each of the table methods public in the z >> locale. Is there a way to dispatch them to the table/CURRENT locale >> without making clobbering other verbs in the z/base locale? My >> research suggests the answer is no, but was interested in any clever >> solutions. I'd also like to avoid adding many more keywords (such as >> modifier to intercept the call and convert it) >> >> Alternatively, I considered passing a string of the dsl and chopping >> it apart and interpreting it, but I liked the idea of avoiding the >> string argument if possible. > > Hmm... > > My thoughts were: > > (1) The : 0 phrases (for example: explicit definitions) are already > about passing strings, chopping them apart and interpreting them. > > (2) The cocurrent verb (or, more specifically, 18!:4) is aimed at a > problem specification very like what you are suggesting here. (And, I > see that Pascal has already suggested something similar.) > > (3) Nouns, on the other hand, do not know which locale they live in - > they are meant to be the messages passed between locales. > > It would be best, I think, if you paired up "to" on the right of the > sentence with a word on the left of the sentence which terminates the > dsl expression. My verbal imagination fails me at the moment, so I'm > going to use "from". > > With this, tbl could be a locale reference, and - 'to' would switch to > the locale and return its left argument. 'from' would switch you back > to 'base' locale and return a reference to tbl's locale. (You could > get fancy and maintain a locale call stack, but that gets you into > guarding against stack imbalances - easier to just say that mixing > dsls should happen in different explicit verbs, or with great care.) > > Thanks, > > -- > Raul > > ---------------------------------------------------------------------- > 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
