Hello,

I wanted to check on the trace verb and I got stuck with this:

   a =: 1 2 3 4 5 6 7
   a
1 2 3 4 5 6 7
   a ( < # [) 4
1 2 3
   trace 'a ( < # [) 4'
 --------------- 5 Trident ----
 <
 #
 [
 < # [
 --------------- 8 Paren ------
 (
 < # [
 )
 < # [
 --------------- 1 Monad ------
 < # [
 4
|domain error: executet
|   t_z=.    (<#[)(4)

What am I missing?

Regards,
Yuva

On Thu, Jul 30, 2009 at 10:45 AM, Zsbán Ambrus <[email protected]> wrote:

> On Wed, Jul 29, 2009 at 8:57 AM, Roger
> Stokes<[email protected]> wrote:
> > NB. trace can produce an incorrect result.
> >
> >   require 'trace'
> >
> >   a =: 6
> >   trace '(a=:7) ,  a'
> ...
> > 7 7
> >
> >   NB. the correct result is shown by:
> >
> >   a =: 6
> >   (a=:7) , a
> > 7 6
>
> Wow, I had to look up in the dictionary whether this behaivior is
> supported.  The chapter "Parsing and Execution" says
>
> > Parsing proceeds by moving successive elements (or their values except in
> the case of proverbs and names immediately to the left of a copula) from the
> tail end of a queue (initially the original sentence prefixed by a marker §)
> to the top of a stack (initially four markers), and eventually executing
> some eligible portion of the stack and replacing it by the result of the
> execution.
>
> and later it says
>
> > The executions in the stack are confined to the first four elements only,
> and eligibility for execution is determined only by the class of each
> element (noun, verb, etc., an unassigned name being treated as a verb), as
> prescribed in the following parse table. The classes of the first four
> elements of the stack are compared with the first four columns of the table,
> and the first row that agrees in all four columns is selected. The bold
> italic elements in the row are then subjected to the action shown in the
> final column, and are replaced by its result. If no row is satisfied, the
> next element is transferred from the queue.
>
> which defines exactly when a name is converted to its value or a
> proverb (the latter for names whose value is verb or undefined).  For
> some reason I thought the dictionary left when this happens during
> execution partially undefined on purpose, but no.
>
> Ambrus
> ----------------------------------------------------------------------
> 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