Watch:

    (,<0$a:) -:!.0 (,a:)

1

(,<0$a:) ($@0:)`(~.@,@(]S:0)@[)`]}&; , a:

|length error

| (,<0$a:) ($@0:)`(~.@,@(]S:0)@[)`]}&;,a:


    (,a:) ($@0:)`(~.@,@(]S:0)@[)`]}&; , a:


Opening (,<0$a:) produces a empty list of boxes, which behaves differently as the left argument to { than an empty numeric list.


Henry Rich




On 1/21/2019 8:29 AM, Игорь Журавлёв wrote:
I've found an error, but cannot reproduce it in the clean session. The problem 
line (simplfied) is:

   follows=. heads ($@0:)`(~.@,@(] S: 0)@[)`]}&; (, a:)

I've prepended it by the line:

   heads__=: heads

to debug after that code breaks. So, session log looks like:
==========================================
    load 'app.ijs'
    run_problem_verb ''
...
|length error
|   follows=. heads    ($@0:)`(~.@,@(]S:0)@[)`]}&; , a:
    heads ($@0:)`(~.@,@(] S: 0)@[)`]}&; (, a:)       NB. try to reproduce using 
noun from app: error is reproduced
|length error
|   heads    ($@0:)`(~.@,@(]S:0)@[)`]}&;(,a:)
    heads2=. , a:
    heads -:!.0 heads2
1
    heads2 ($@0:)`(~.@,@(] S: 0)@[)`]}&; (, a:)       NB. try to reproduce 
using identical noun: error isn't reproduced

    heads ($@0:)`($@0:@~.@,@(] S: 0)@[)`]}&; (, a:)     NB. replace generated 
ISO value by identical value: error isn't reproduced, too

    ($0) -:!.0 ~.@,@(] S: 0)@[ heads       NB. what generated ISO value is
1
    JVERSION
Engine: j807/j64/linux
Release-a: commercial/2019-01-11T11:05:56
Library: 8.07.22
Platform: Linux 64
Installer: J807 install
InstallPath: /home/user/j64-807
Contact: www.jsoftware.com
==========================================

So, 'head' noun copied from app breaks code, but identical fresh noun 'head2' 
doesn't. If the value generated from 'heads' is replaced by identical value 
($0), this avoids error.




---
This email has been checked for viruses by AVG.
https://www.avg.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to