It seems that isgerund executes a sentence entirely for the purpose of
seeing whether it gives an error. Perfectly valid, of course, but it
draws the wrath of the error message. You can suppress the message by
making the offending statement an assignment:
isgerund =: 0:`(0 -.@e. 3 : ('a =. y (5!:0)';'1')"0)@.(0 < L.) :: 0:
Henry Rich
On 4/9/2022 8:47 PM, 'Pascal Jasmin' via Beta wrote:
I can give more information on these "wrong" warnings, first reported with
jplayground
cocurrent 'z'
isNoun =: (0 = 4!:0 ::0:)@:<
isgerund =: 0:`(0 -.@e. 3 : ('y (5!:0)';'1')"0)@.(0 < L.) :: 0:
ar =: 1 : '5!:1 <''u'''
ari =: 1 : 'if. isNoun ''u'' do. if. (isgerund -.@+. '''' -: ]) m do. m ar
else. m end. else.u ar end.'
ti =: ari ` ari NB. different from doubleadverb2.ijs: '' is passed to ` . boxed
non gerund is ar'd ie a:`u
ti2 =: ar ` ar
F0 =: 1 : 'u ti ti `: 6'
v2c =: 1 : '[. u ].'
F1 =: 1 : '(ti u) ti (''''ti) `:6'
F2 =: 1 : 'ti ti u `: 6'
t =: t.''
Warnings get generated when the ari function is used in modifier trains. ari
is an adverb that returns a noun on all paths.
+ (` ti `) - NB. 4 warnings.
+ (ti2 ti2 ti2) - NB. 0 warnings. no ari code at all.
+/ % (2 : 'ti' ti) # NB. 2 warnings
+/ % (2 : '`' ti) # NB. 0 warnings
+/ % ((2 : 'ti2') ti) # NB. no warnings. possibly because ti executes ari at
end rather than intermediate result in a modifier train?
+/ % (F1 t. '') # NB. or (F1 t). 3 warnings.
+/ % (v2c t. '') # NB. 0 warnings.
On Saturday, April 9, 2022, 03:03:18 p.m. EDT, Henry Rich
<[email protected]> wrote:
It has long been known that J will execute many meaningless sentences
without warning. Examples are
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
--
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