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