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