> If the definition could be terminated with a 'special' symbol, that
> detects the problem, then an automatic error message might be generated
> as in "x input incorrect or missing".

You've crystallized a thought in my mind, David.

There's a risk (dare I say) of J being "implementation-defined" over
how it handles adverbs (and conjunctions). Raul said:

>> > An evaluation step has to happen (which involves resolving what the
>> > name of the conjunction refers to) before the interpreter can see
>> > whether it contains both an x or a y and a m, n, u or v.

But should an implementation expedient be part of the language?
(...that's a question to get you struck by lightning.)

There's more than one kind of adverb, going by how it's used. My
adverb 'shift' does its job at run-time. Fix (f.) on the other hand,
does its job at "compile time" --though to use a word like "compile"
begs the implementation question. Not to mention the deferral
question. Behaviour that I need in Fix (f.) is an annoyance in 'shift'
-- viz to evaluate inside a definition.

J is full of primitives to tweak things: =. vs =: , Fit (!.) , various
Foreigns, Rank (") even. Or to predict their behaviour, like Basic
(b.) . So why not one more to tweak / predict the behaviour of an
adverb?

That said, J is a marvel of microminiaturization and things fit
together so tight: I hate even to think of YALE -Yet Another Language
Extension.

I would really like someone to write me a verb (I haven't the skill
for it) that takes the text of an adverb and tells me what's good for
me to know. Thus: no mention of x or y... will execute at definition
time... whatever.


On Fri, Jun 10, 2011 at 3:51 PM, David Vincent-Jones
<[email protected]> wrote:
> If the definition could be terminated with a 'special' symbol, that
> detects the problem, then an automatic error message might be generated
> as in "x input incorrect or missing". It would be a more user friendly
> than having users delve into the land of trace.
>
> David
>
> On Thu, 2011-06-09 at 20:09 -0600, Don Guinn wrote:
>> I don't really know. All I know is that if I have x and y explicitly
>> specified in the definition of an adverb or conjunction that it does not
>> appear to execute until x and y are supplied. You can see that by putting a
>> trace, some output which occurs when the definition is executed. If no x or
>> y it executes earlier. If x or y is present it waits until x and/or y are
>> given. You can put tests into the definition to determine if u and v are
>> verbs or nouns. You can put in tests to look at x and y and change how the
>> adverb or conjunction executes. That seems to me that the execution is
>> deferred when x or y is present.
>>
>> It would seem to me that if trace were in the definition that that would
>> show even if the definition were discarded.
>>
>> On Thu, Jun 9, 2011 at 8:08 AM, Raul Miller <[email protected]> wrote:
>>
>> > You are talking about two different things here, I think.
>> >
>> > An evaluation step has to happen (which involves resolving what the
>> > name of the conjunction refers to) before the interpreter can see
>> > whether it contains both an x or a y and a m, n, u or v.
>> >
>> > Now... you could argue that once that investigation has happened, the
>> > definition which was inspected should be discarded, and the name which
>> > was used to find the definition should be retained in its place.  But
>> > I think we can at least agree that this would be a change in how the
>> > language works:
>> >
>> >   f1_ex_=:1 :'start u y'
>> >   f2_ex_=:1 :'start u ]'
>> >   start=: 10
>> >   start_ex_=: 100
>> >   + f1_ex_ 1000
>> > 1010
>> >   + f2_ex_ 1000
>> > 1100
>> >
>> > --
>> > Raul
>> >
>> > On Thu, Jun 9, 2011 at 8:53 AM, Don Guinn <[email protected]> wrote:
>> > > Not necessarily. The definition is completed when all arguments are
>> > > supplied.  If the definition of an adverb or conjunction contains x or y
>> > the
>> > > definition is delayed until those arguments are supplied.
>> > >
>> > > On Thu, Jun 9, 2011 at 12:40 AM, Ian Clark <[email protected]>
>> > wrote:
>> > >
>> > >> >>Anyways, adverbs and conjunctions are evaluated when building tacit
>> > >> >>verbs, so J cannot defer their name resolution until later unless you
>> > >> >>embed them in an explicit verb.
>> > >> >
>> > >> > Thanks, Raul -- I guess that perfectly describes the situation I've
>> > >> > run up against. :)
>> > >> > Plus the remedy, which is the one I've resorted to. :/
>> > >> > But IMO that's like Molière: Q: Why does morphine make you sleep?...
>> > >>
>> > >> Sorry Raul, I entirely missed the point, didn't I? ...
>> > >>
>> > >> If adverbs and conjunctions combine verbs into new verbs, then those
>> > >> new verbs logically come into existence at definition time, not
>> > >> run-time. Hence the conjunction has to be expanded at definition time:
>> > >> you can't avoid it.
>> > >>
>> > >> Very taken-up right now with clearly explaining J concepts to novices.
>> > >> Seems I needed this one explaining to myself: I was implicitly viewing
>> > >> a conjunction as a kind of super-verb taking extended arguments.
>> > >>
>> > >> Definitely an APL mindset there
>> > >> .
>> > >>
>> > >>
>> > >>
>> > > ----------------------------------------------------------------------
>> > > 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