Right, I agree that it is "an incomplete token" that is why I included "(ultimately)."
On Sat, Feb 13, 2016 at 7:58 PM, bill lam <[email protected]> wrote: > I think > m : > is an adverb but > (m :0 ) is an incomplete token , and has no syntactic class. It must > combine with other lines to become a real J entity. Just like > 0 : 'foo > (without closing quote) is illegal. > On Feb 14, 2016 8:21 AM, "Jose Mario Quintana" < > [email protected]> wrote: > > > The expression noun define (0 : 0) is meant to produce (ultimately) a > > noun. However, monad define (3 : 0), dyad define (4 : 0), adverb define > (1 > > : 0) and conjunction define (2 : 0) produce verbs, adverbs and > > conjunctions; are these (the products) tacit? > > > > Paraphrasing a certain colorful crafty politician: I do not know but > people > > say, or imply, they are explicit; very smart people tell me they are not > > tacit; I do not know but... ;) > > > > > > On Fri, Feb 12, 2016 at 6:47 PM, Raul Miller <[email protected]> > > wrote: > > > > > That's simpler than what I was thinking of. > > > > > > And that does satisfy my concept of tacit programming, though I think > > > I remember hearing rumblings from other people that this kind of thing > > > is not tacit. (Actually, if tacit means "no use of names" then the 3 > > > :'0 :0' definition would also be tacit.) > > > > > > Thanks, > > > > > > -- > > > Raul > > > > > > > > > On Fri, Feb 12, 2016 at 6:18 PM, Jose Mario Quintana > > > <[email protected]> wrote: > > > > getnoun=. ".@:('0 : 0'"_) > > > > > > > > $getnoun'' > > > > 1 2 3 > > > > 4 5 6 > > > > ) > > > > 12 > > > > > > > > > > > > On Fri, Feb 12, 2016 at 2:41 PM, Raul Miller <[email protected]> > > > wrote: > > > > > > > >> Wrapping 0 :0 in an explicit verb should be possible: > > > >> > > > >> getnoun=:3 :'0 :0' > > > >> $getnoun'' > > > >> 1 2 3 > > > >> 4 5 6 > > > >> ) > > > >> 12 > > > >> > > > >> It's also possible to do this tacitly, but yeah, doing it tacitly > such > > > >> that it triggers when a verb is executed would be tricky (possible, > > > >> but overly verbose to accomplish). Also, not sure if that would have > > > >> any uses... > > > >> > > > >> Personally, I rarely even bother using the predefined (noun define) > > > >> cover for this. The raw 0 :0 form is actually rather convenient. > > > >> > > > >> Thanks, > > > >> > > > >> -- > > > >> Raul > > > >> > > > >> > > > >> On Fri, Feb 12, 2016 at 2:03 PM, Matthew Baulch < > > [email protected]> > > > >> wrote: > > > >> > Ok. That explains things well. So the the line(s) containing : > > behave > > > >> just > > > >> > as if : is an everyday conjunction. It's the lines AFTER : that > are > > > >> treated > > > >> > specially. > > > >> > > > > >> > I suppose that's quite a clear design. I'll re-read the > > documentation. > > > >> Like > > > >> > you say, once I know what's going on, these subtle points are more > > > likely > > > >> > to stand out. > > > >> > > > > >> > ". does indeed have unlimited potential—over the domain of > character > > > >> arrays > > > >> > anyway. I'm trying to wrap this construction in a verb so I can > > obtain > > > >> > these multi-line definitions without explicitly calling ". . Just > > for > > > >> > feelings of purity. It doesn't seem like this can be accomplished > > > >> tacitly. > > > >> > I'm starting to think that 0:0 has to appear in each definition, > and > > > so > > > >> > defining such a verb may not be possible. Oh well. > > > >> > > > > >> > Thanks. : makes sense now. > > > >> > On 12 Feb 2016 2:11 pm, "Henry Rich" <[email protected]> > wrote: > > > >> > > > > >> >> > Forgive me if I'm wrong, but I don't see a discussion of > > > 'expressions > > > >> to > > > >> >> the > > > >> >> > right of zero' (such as '-.LF' in '0 : 0 -. LF') > > > >> >> > in either of your links. > > > >> >> > > > >> >> No. But that isn't surprising when you understand what's going > on. > > > >> >> > > > >> >> 0 : 0 creates a noun. > > > >> >> > > > >> >> Because conjunctions are executed before verbs, > > > >> >> > > > >> >> 0 : 0 -. LF > > > >> >> > > > >> >> is the same as > > > >> >> > > > >> >> (0 : 0) -. LF > > > >> >> > > > >> >> (0 : 0) creates a noun that can be used just as any other noun is > > > used. > > > >> >> You can add to it, subtract from it, execute it... The (-. LF) > has > > > >> nothing > > > >> >> to do with the execution of (:). What I'm saying is, if you are > OK > > > with > > > >> >> something like > > > >> >> > > > >> >> ".;._2 (0 : 0) > > > >> >> > > > >> >> [which feeds the result of (0 : 0) into a verb], you should ipso > > > facto > > > >> be > > > >> >> OK with > > > >> >> > > > >> >> (0 : 0) -. LF > > > >> >> > > > >> >> which also feeds that result into a verb, just from the left this > > > time. > > > >> >> > > > >> >> The (:) in (0 : 0) is executed WHEN (:) IS EXECUTED, i. e. at the > > > >> >> appropriate time during the parse [see NuVoc for explanations]. > > After > > > >> (:) > > > >> >> has read its fill, execution of the sentence continues. So, you > can > > > have > > > >> >> > > > >> >> (0 : 0) ,&(".;._2) (0 : 0) > > > >> >> > > > >> >> 1 2 3 > > > >> >> > > > >> >> ) > > > >> >> > > > >> >> 10 20 30 > > > >> >> > > > >> >> 40 50 60 > > > >> >> > > > >> >> 70 80 90 > > > >> >> > > > >> >> ) > > > >> >> > > > >> >> 10 20 30 > > > >> >> > > > >> >> 40 50 60 > > > >> >> > > > >> >> 70 80 90 > > > >> >> > > > >> >> 1 2 3 > > > >> >> > > > >> >> > > > >> >> Two (0 : 0) in one sentence [the parentheses are not required]! > and > > > >> >> executed right-to-left. > > > >> >> > > > >> >> > > > >> >> > > > >> >> (".) has unlimited potential, but often is put to mundane use. > > When I > > > >> was > > > >> >> starting with J I felt a frisson of daring when I used it, but > now > > > it's > > > >> >> just another verb to me. > > > >> >> > > > >> >> > > > >> >> Henry Rich > > > >> >> > > > >> >> > > > >> >> > > > >> >> > > > >> >>> I'd welcome any correction. > > > >> >>> > > > >> >>> Cheers. > > > >> >>> It's pretty well explained at > > > >> >>> > > > >> >>> > http://code.jsoftware.com/wiki/Vocabulary/NounExplicitDefinition > > > >> >>> > > > >> >>> The question is, How would you know to read that? Suggestions > > > >> welcomed. > > > >> >>> > > > >> >>> When you say "expression following the 0", I'm not sure which 0 > > you > > > >> mean. > > > >> >>> > > > >> >>> : is the all-purpose entity creator; the left 0 says 'create a > > > noun', > > > >> and > > > >> >>> the right > > > >> >>> 0 says 'make that noun from the upcoming lines of input'. > > > >> >>> > > > >> >>> Full details are spelled out in several pages starting at > > > >> >>> http://code.jsoftware.com/wiki/Vocabulary/cor > > > >> >>> > > > >> >>> Henry Rich > > > >> >>> > > > >> >>> > > > >> >>> On 2/11/2016 12:55 AM, Matthew Baulch 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. > > > >> >>>> > > > >> >>>> 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. > > > >> >>>> > > > >> >>>> Cheers. > > > >> >>>> > > > >> >>>> On Wed, Feb 10, 2016 at 10:29 PM, Matthew Baulch < > > > >> [email protected]> > > > >> >>>> wrote: > > > >> >>>> > > > >> >>>> Looking at this more closely now. I'm a bit puzzled about the > use > > > of > > > >> -. > > > >> >>>> > > > >> >>>>> here. Obviously this is used here in dyadic form. In x -. LF > the > > > LF > > > >> >>>>> characters are, of course, removed from x. What is the x > here? I > > > have > > > >> >>>>> seen > > > >> >>>>> that it works--not doubting that. Just trying to work out how. > > > Sorry. > > > >> >>>>> There's probably something obvious I've missed. > > > >> >>>>> > > > >> >>>>> On Wed, Feb 10, 2016 at 12:52 AM, Raul Miller < > > > [email protected] > > > >> > > > > >> >>>>> wrote: > > > >> >>>>> > > > >> >>>>> If you do not have good names for partial calculations, that > > > might be > > > >> >>>>> > > > >> >>>>>> a sign that you need to think a bit more about the > abstractions > > > you > > > >> >>>>>> are using. It can be difficult for other people to read if > you > > > don't > > > >> >>>>>> make sufficient effort to label your abstractions. > > > >> >>>>>> > > > >> >>>>>> Also, I would note that your 'c0' is not a combinator, as you > > are > > > >> not > > > >> >>>>>> using its dyadic definition. So you might want to use a > > different > > > >> name > > > >> >>>>>> for that one. Perhaps: > > > >> >>>>>> > > > >> >>>>>> v0=:c0 > > > >> >>>>>> > > > >> >>>>>> That said, if you really want to execute really long lines, > you > > > can > > > >> do > > > >> >>>>>> that using ". 0 :0-.LF and indented text. (You need the > > > indentation > > > >> >>>>>> because line feeds will not separate words here.) > > > >> >>>>>> > > > >> >>>>>> For example: > > > >> >>>>>> > > > >> >>>>>> myStruct=: ". 0 :0-.LF > > > >> >>>>>> v0 p0 c1 p1 c2 p2 c3 p3 c4 p4 c5 p5 c6 p6 c7 p7 c8 p8 c9 > p9 > > > >> >>>>>> c10 p10 c11 p11 c12 p12 c13 p13 c14 p14 c15 p15 c16 p16 > c17 > > > >> >>>>>> p17 c18 p18 c19 p19 c20 p20 c21 p21 c22 p22 c23 p23 c24 > p24 > > > >> >>>>>> c25 p25 c26 p26 c27 p27 c28 p28 c29 p29 c30 p30 > > > >> >>>>>> ) > > > >> >>>>>> > > > >> >>>>>> I hope this helps, > > > >> >>>>>> > > > >> >>>>>> -- > > > >> >>>>>> Raul > > > >> >>>>>> > > > >> >>>>>> On Tue, Feb 9, 2016 at 4:59 AM, Matthew Baulch < > > > >> [email protected]> > > > >> >>>>>> wrote: > > > >> >>>>>> > > > >> >>>>>> Suppose I wish to construct a complex, non-regular deeply > > nested > > > >> >>>>>>> > > > >> >>>>>>> structure: > > > >> >>>>>> > > > >> >>>>>> to model some inherently non-linear system. A natural > approach > > > (for > > > >> me, > > > >> >>>>>>> anyhow) is to construct a library of combinators, or a > domain > > > >> specific > > > >> >>>>>>> language, with which to specify the (boxed) structure. > > > >> >>>>>>> > > > >> >>>>>>> J rises easily to the task, and before long I'm looking at > > long > > > >> >>>>>>> function > > > >> >>>>>>> trains of the form > > > >> >>>>>>> > > > >> >>>>>>> myStruct =: c0 p0 c1 p1 c2 p2 ... cN pN > > > >> >>>>>>> > > > >> >>>>>>> where the ci are (combinator) verbs, and the pj are > > (parameter) > > > >> nouns. > > > >> >>>>>>> Nice. Easy. > > > >> >>>>>>> > > > >> >>>>>>> Only trouble is, N may be large and J prefers such > statements > > to > > > >> sit > > > >> >>>>>>> on > > > >> >>>>>>> > > > >> >>>>>>> a > > > >> >>>>>> > > > >> >>>>>> single line. Correct? I can split my definition: > > > >> >>>>>>> > > > >> >>>>>>> msPartA =. ..... > > > >> >>>>>>> msPartB =. ..... > > > >> >>>>>>> ..... > > > >> >>>>>>> msPartX =. ..... > > > >> >>>>>>> myStruct =: msPartA msPartB .... msPartX > > > >> >>>>>>> > > > >> >>>>>>> though this feels awkward. The most obvious issue is that > the > > > >> PartA, > > > >> >>>>>>> > > > >> >>>>>>> ..., > > > >> >>>>>> > > > >> >>>>>> PartX are distracting; unless of course I can find a natural > > way > > > of > > > >> >>>>>>> splitting and naming them. Ideally, the parts should be as > > close > > > >> to a > > > >> >>>>>>> comfortable line width as possible. Again, awkward. If > > myStruct1 > > > >> and > > > >> >>>>>>> myStruct2 have the same partitioning scheme but myStruct2 > (for > > > >> >>>>>>> > > > >> >>>>>>> instance) is > > > >> >>>>>> > > > >> >>>>>> much larger than myStruct1, there will be many sparsely, or > > many > > > >> >>>>>>> overpopulated lines. Awkward too. > > > >> >>>>>>> > > > >> >>>>>>> I love J. It handles complex regular data so elegantly. How > > can > > > I > > > >> >>>>>>> bring > > > >> >>>>>>> similar elegance to irregular data? Can my combinators be > > > rescued, > > > >> or > > > >> >>>>>>> should I use another approach? > > > >> >>>>>>> > > > >> > ---------------------------------------------------------------------- > > > >> >>>>>>> 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 > > > >> > > > > > ---------------------------------------------------------------------- > > > > 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
