A related problem is, what should you do about something like this?

example=: ((3 :0) (2 :0) (3 :0))"1
      NB. rightmost verb
      a:
  )
      NB. conjunction
      u+v
 )
      NB. leftmost verb
      1 2 3+4 5
)

example3=:example2=:example1=:example

  13!:0]1
   example3 ''
|length error: example
|   1 2 3    +4 5

-- 
Raul

On Sun, May 29, 2016 at 10:31 AM, bill lam <[email protected]> wrote:
> Yes, that is what I usually do for debugging anonymous verbs. It works but
> seems discouraging writing compound verbs.
> On May 29, 2016 10:19 PM, "Henry Rich" <[email protected]> wrote:
>
>> Yes, that's because what is running is not a named definition. (It's 3 : 0
>> not t2)
>>
>> In the jqt debugger I changed things so that if you set a stop in t2, the
>> debugger splits the definition into
>>
>> t2compound =: original t2
>> t2 =: t2compound"0
>>
>> and then puts the stop into t2compound.  If you are using jqt you can set
>> a stop before running the program, to get a good stop.
>>
>> If you are not running jqt I don't know what the best solution is.  You
>> could split the definition by hand.
>>
>> Or, maybe we could make up a name for the unnamed explicit definition, and
>> show that on the stack.  That's a design change that would require some
>> thought and discussion.
>>
>> Henry Rich
>>
>> On 5/29/2016 10:12 AM, bill lam wrote:
>>
>>> Anther thing about debug stack is that it cannot show the correct
>>> line number if the verb is defined by 3 : 0"n or n&$: : (4 : 0)
>>>
>>> eg,
>>> t1=: 3 : 0
>>> 1
>>> t2''
>>> 4
>>> )
>>>
>>> t2=: 3 : 0"1
>>> 1
>>> 2
>>> 3
>>> 1+'a'
>>> 4
>>> 5
>>> 6
>>> )
>>>
>>>     dbr 1
>>>     t1''
>>> |domain error: t2
>>> |   1    +'a'
>>>        dbctx''
>>> @@ t2[0] *v @@ /home/bill/a1.ijs
>>> 3 : 0"1
>>>
>>>> [0] 1
>>>>
>>>   [1] 2
>>>   [2] 3
>>>   [3] 1+'a'
>>>        dbstack''
>>> +----+--+--+--+----+------+----+
>>> |name|en|ln|nc|args|locals|susp|
>>> +----+--+--+--+----+------+----+
>>> |t2  |3 |0 |3 |++  |      |*   |
>>> |    |  |  |  |||  |      |    |
>>> |    |  |  |  |++  |      |    |
>>> +----+--+--+--+----+------+----+
>>> |t1  |0 |1 |3 |++  |+-++  |    |
>>> |    |  |  |  |||  ||y||  |    |
>>> |    |  |  |  |++  |+-++  |    |
>>> +----+--+--+--+----+------+----+
>>>
>>> However it works if t1 and t2 are
>>>
>>> t1=: 3 : 0
>>> 1
>>> t2"1 ''
>>> 4
>>> )
>>>
>>> t2=: 3 : 0
>>> 1
>>> 2
>>> 3
>>> 1+'a'
>>> 4
>>> 5
>>> 6
>>> )
>>>
>>>     dbr 1
>>>     t1''
>>> |domain error: t2
>>> |   1    +'a'
>>> |t2[3]
>>>        dbstack''
>>> +----+--+--+--+----+------+----+
>>> |name|en|ln|nc|args|locals|susp|
>>> +----+--+--+--+----+------+----+
>>> |t2  |3 |3 |3 |++  |+-++  |*   |
>>> |    |  |  |  |||  ||y||  |    |
>>> |    |  |  |  |++  |+-++  |    |
>>> +----+--+--+--+----+------+----+
>>> |t1  |0 |1 |3 |++  |+-++  |    |
>>> |    |  |  |  |||  ||y||  |    |
>>> |    |  |  |  |++  |+-++  |    |
>>> +----+--+--+--+----+------+----+
>>>
>>>
>>>
>> ----------------------------------------------------------------------
>> 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