This is quite an adequate answer. The origin was that I was thinking why character strings have all these quote rules. Obviously, to distinguish them from (user defined) nouns. But what if I wanted to present the J-GUI to an innocent user who certainly will not remember these rules? Then I'm (and so she will be) stuck. Unless, as you suggest, I "take over the REPL".
(I wasn't (directly) thinking J-lite, but perhaps this will come in handy in the future.) For this moment I should bypass the problem and ask the user to enter the string(s) in a csv-file and then start J by reading that file. Thanks for all comments. R.E. Boss > -----Oorspronkelijk bericht----- > Van: programming-boun...@jsoftware.com [mailto:programming- > boun...@jsoftware.com] Namens Dan Bron > Verzonden: zondag 12 februari 2012 16:38 > Aan: 'Programming forum' > Onderwerp: Re: [Jprogramming] quote problem > > Of course, that part's easy. > > ntt =: verb def '5!:5{.;:''y''' NB. Noun To Text > > ntt;._2 noun define -.TAB > a. i. '(`'3 > a. i. '(`'3' > 'open 'quote > ) > 'a. i. ''(`''3' > 'a. i. ''(`''3''' > '''open ''quote' > > But it goes back to the original questions: > 1. What is the source of these strings? > _Where_ is your user typing them in? > > 2. What is processing these strings? > > If the answer to #1 is a file, or a GUI (e.g. wd, web interface, etc) or > anywhere other than immex mode, the answer is easy. But I'm getting the > sense that the very reason you want to quote these strings is so that J can > process them in immex mode. You don't need them quoted for your own > purposes. > > That is, you're trying to give your user access to the power of J (because > it's so close to what your user needs already....) but you feel that > out-of-the-box, J is a little too picky about input. That is, J is > powerful, but not trivial to learn and use. So you want something like J, > but simpler, easier. You want a "Simple J"; an "Easy J". > > Is that right? If so, does it sound familiar? > > Anyway, if that is what you're after (the user typing something J-like but > not-quite-J into immex mode), then you need to commandeer the IJX > session > manager. Because, by definition, anything typed into the IJX session > manager has to be a valid J sentence. But once you take over the REPL, you > can do whatever you like; you can implement your own, J-like language. > > http://www.jsoftware.com/jwiki/RicSherlock/Temp/InteractiveProm > pt > (Note in particular the caveats at the bottom of the page) > > http://www.jsoftware.com/jwiki/DanBron/Temp/REPL > (A similar program) > > Which leads me to question #2: what other things does your language > permit, > that J would not, out-of-the-box? Because, once you solve your quoting > problem, if you're still using ". (i.e., J) to process your strings, you're > going to hit new hurdles. > > i =: 2 NB. User is typing this stuff in > j =: 3 > > i j { i. 4 5 > |syntax error > | i j{i.4 5 > |[-0] > > NB. ??? I'm a sad, confused user > > +:^:3 2 NB. RE told me about this power operator thing, it > sounds so cool! > +:^:3 2 > > NB. Darn, it's broken! > > Of course, I could be reading too much into your messages, and be totally > off-base about this "J Lite" thing. If so, can you share the bigger picture > of your use case? Who is the user, what is he doing, what are his > objectives, what is his interface to your application, etc? > > -Dan > > -----Original Message----- > From: programming-boun...@jsoftware.com > [mailto:programming-boun...@jsoftware.com] On Behalf Of R.E. Boss > Sent: Sunday, February 12, 2012 9:40 AM > To: 'Programming forum' > Subject: Re: [Jprogramming] quote problem > > The (input) string should be considered as one group (of chars). > Quoting is needed if the first or the last (or both) is not a quote, all > inside quotes should be doubled if they are not. > > > R.E. Boss > > > > -----Oorspronkelijk bericht----- > > Van: programming-boun...@jsoftware.com [mailto:programming- > > boun...@jsoftware.com] Namens Don Guinn > > Verzonden: zondag 12 februari 2012 14:03 > > Aan: Programming forum > > Onderwerp: Re: [Jprogramming] quote problem > > > > Given the string contains several groups of non-blanks, would each group > > need to be surrounded with quotes and quotes within it doubled if not a > > number, or only if it contained one or more quotes? Or should the string > be > > considered as one group? Again, when would quoting be needed? > > > > On Sun, Feb 12, 2012 at 1:17 AM, R.E. Boss <r.e.b...@planet.nl> wrote: > > > > > The problem boils down to the fact that J requires a string (of chars) > to > > > be > > > enclosed in (single) quotes and the inside quotes have to be doubled. > > > (Contrary to a spreadsheet (e.g.) where a cell is of type char if it is > not > > > a number.) > > > But what if I don't want bother a user with these requirements, she > enters > > > a > > > string and my verb does the enclosing and doubling, if necessary? > > > > > > > > > R.E. Boss > > > > > > > > > > -----Oorspronkelijk bericht----- > > > > Van: programming-boun...@jsoftware.com [mailto:programming- > > > > boun...@jsoftware.com] Namens Dan Bron > > > > Verzonden: zaterdag 11 februari 2012 20:35 > > > > Aan: J Programming > > > > Onderwerp: Re: [Jprogramming] quote problem > > > > > > > > Oh, just saw Henry's response and he interpreted your question > > > differently. > > > > > > > > If you're not typing these strings in, then what is the source? And > what > > > is > > > > processing them (is it ;: ? if it's ". there's more to worry about > than > > > proper > > > > quoting). > > > > > > > > Anyway, if the strings are coming from e.g. a file and the trouble is > > > with > > > > parsing them using ;: (instead of evaluating them in the immex > session), > > > then > > > > you could try something along the lines of (#~ 2 * '''' = ]) y (i.e. > > > double > > > > singleton quotes). > > > > > > > > -Dan > > > > > > > > Please excuse typos; composed on a handheld device. > > > > > > > > -----Original Message----- > > > > From: Dan Bron <j...@bron.us> > > > > Sender: programming-boun...@jsoftware.com > > > > Date: Sat, 11 Feb 2012 14:05:16 > > > > To: Programming forum<programming@jsoftware.com> > > > > Reply-To: Programming forum <programming@jsoftware.com> > > > > Subject: Re: [Jprogramming] quote problem > > > > > > > > Unlike C, where \ introduces an escape sequence within string > liberals, > > > in > > > J, > > > > the only special character in a literal is ' (single quote). > > > > > > > > So, to embed quotes in strings, double them up: a. i. '(`''3' . > Of > > > course, > > > > recursively embedded quotes need quadrupling, octupling, etc (eg 'he > > said > > > > ''she said ''''yes'''', but she lied'', if you can believe that'). > > > > > > > > The syntax error in your first example is due to the juxtaposition of > two > > > > nouns, the string '(`' and the number 3 . > > > > > > > > -Dan > > > > > > > > > > > > On Feb 11, 2012, at 1:04 PM, "R.E. Boss" <r.e.b...@planet.nl> wrote: > > > > > > > > > If I want to process an arbitrary string, I may encounter a string > > > which > > > > > might give a "syntax error" or an "open quote" message. > > > > > > > > > > How can I detect such a situation and how can I repair the given > > > string? > > > > > > > > > > > > > > > > > > > > a. i. '(`'3 > > > > > > > > > > |syntax error > > > > > > > > > > | a. i.'(`'3 > > > > > > > > > > > > > > > > > > > > a. i. '(`'3' > > > > > > > > > > |open quote > > > > > > > > > > | a.i.'(`'3' > > > > > > > > > > | ^ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > R.E. Boss > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > 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 > > > > > > ---------------------------------------------------------------------- > > > 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 > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm