For all my exposure to J, I can't answer the following simple(?)
questions. Can someone help please?

Take the fully parenthesized representation of a given tacit verb: foo
(viz 5!:6 <'foo')
--note: "verb", not "sentence" (which might be a noun).
Take what's inside any pair of balanced parens: (...). Give it a name:
baa, so we can formally replace (...) with (baa) .

1. Is baa always a verb?
     Answer: no, because I can make phrases like: (-~) appear.
    BUT are there only a small number of special cases I can detect
and allow for, like (-~)?

2. If baa is not a verb, how can I determine its type?
    -short of actually assigning it to a local name: baa=. (...) and
calling 4!:0<'baa' ?

3. Is there an easy way to tell if baa gets called monadically or
dyadically, and if it gets the y-argument of foo -- and the x-arg too?
    Ignore the case of baa getting an intermediate noun -- I can
determine this from the paren nesting structure.
    Ditto a constant.
    Note I'm only concerned with the output of 5!:6, not what's
syntactically possible when a tacit verb can be entered by hand, where
a phrase in parens can of course be a noun.


I guess the answers can in principle be found from a very careful
reading of Help > Dic > E. Parsing and execution, and F. Trains. But I
must confess this is beyond me. Has the matter been summed-up
elsewhere more clearly?

(And -- no, I haven't forgotten tte.ijs.)

Ian
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to