Nor the first it seems. Just + can replace >: then. (it's not replacing if it still has to be used.) On 12 Feb 2016 12:56 pm, "Matthew Baulch" <[email protected]> wrote:
> Correction for the second. @. (dyad) can replace ^: (dyad) which can > replace | (monad). > > I didn't think that through very well! > On 12 Feb 2016 12:49 pm, "Matthew Baulch" <[email protected]> wrote: > >> If I understand correctly, the result of 0 : 0 may be referenced as any >> part of the expression on the same line; whether before, or indeed AFTER >> the 0 : 0. Conceptually, the lines following 0 : 0 (until the terminating >> ')') can be regarded as embedded in the 0 : 0 within the sentence. This is >> a curious design decision, but I think I understand how it works. (As noted >> to Henry, I'm not convinced it's adequately documented) >> >> Regarding the 'heavy-handed' comment, I was just pointing out that ". is >> a very powerful, arguably the most powerful, verb. We are using it for a >> minor syntactic effect: nothing else. >> >> Analogously, ^: can replace +, which can replace >: (all dyadic). >> Similarly, @. can replace ^:, which can replace -. (dyadic here too). For >> code with maximum clarity, the 'least powerful' or 'most specific' >> verb/conjunction/... suitable for a task is most often preferred as it >> usually leads to the clearest code. >> On 12 Feb 2016 4:38 am, "Raul Miller" <[email protected]> wrote: >> >>> [posting my response in-line for context] >>> >>> On Thu, Feb 11, 2016 at 12:55 AM, Matthew Baulch <[email protected]> >>> wrote: >>> > Thanks everyone. This (let's say) creative use of 0 : 0 makes sense to >>> me >>> > now. I wonder if it's an accidental consequence of the implementation >>> that >>> > allows an expression following the 0, or whether it's a deliberate >>> design >>> > decision. Either way, it makes sense to have it documented. Can't see >>> it in >>> > NuVoc or the Dictionary. Of course, I may have overlooked it. >>> >>> http://www.jsoftware.com/help/dictionary/d310n.htm says >>> 0 : n noun >>> >>> So the result of 0 : 0 is a noun. (Specifically, it's a list of >>> characters.) So you should expect that anything you can do with a noun >>> you can do with a noun produced by 0 : 0 >>> >>> Or, that's how I read it... >>> >>> Note also that you can have multiple explicit definitions on the same >>> line. They pull their scripts from the input stream in the order that >>> they are parsed (mostly that's right-to-left). This can be fun to play >>> with, sometimes, but I guess it's usually better to give scripts >>> names. >>> >>> > Honestly, to obtain something simple like multi-line noun definitions, >>> ". >>> > does seem like quite a heavy-handed tool. It does work however, so I >>> > probably shouldn't grumble. >>> >>> I'm not sure why you say that. >>> >>> One possibility is that ". cannot produce adverb or conjunction >>> results. (If that is the issue, you can resolve it by moving the >>> assignment statement inside the explicit noun.) >>> >>> Another possibility is that you would prefer a more heavy handed >>> approach (for example, moving an "ignore end of line" implementation >>> inside the interpreter and then changing other aspects of the >>> interpreter to taste.) >>> >>> But it's even more likely that I'm simply not following your thought >>> process. Would you care to elucidate? >>> >>> 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
