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

Reply via email to