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

Reply via email to