Raul Miller wrote:

But I don't think that's the issue you
were trying to talk about.

Here's a simpler example.  Given:

g=:0 :0,')',LF
t=:0 :0
 3=3
)

This works:
  0!:1 g

This does not work:
  0!:1 ];._2 g

Put differently, :0 facilities currently require the script have
frets (the matrix form does not have frets).

Given the presentation in Appendix H of the dictionary, this
seems to be design intent, but it might be a bug.

This clarifies exactly what appears to happen. In a script noun (a vector of characters with LF as frets) the sequential character of the lines is recognised. However if the noun is a character matrix each line is treated independently and the sequential character of the lines as in 0 : 0 or
3 : 0 is not treated correctly.  Adding a LF to the lines does not lead to
correct treatment.   Doing  ,(array),.LF  does.

This may have been the intent, and it does provide options in the way in which code is represented, so to say 0!:1 executes the following noun as a script may be correct. 0!:1 seems to behave as a "1 verb but I have not found any reference to that in the Dictionary. The following illustrates this behaviour

     h =: 'prod =: 3 : 0',LF,'*/y',LF,')',LF  NB.  a script vector
     j =: 'add  =: 3 : 0',LF,'+/y',LF,')',LF  NB.  a script vector

     hm2 =: h,:j
  0!:1 hm2
  prod =: 3 : 0
*/y
)
  add  =: 3 : 0
+/y
)
  prod
3 : '*/y'
  add
3 : '+/y'

If that is the intended behaviour, a suitable sentence noting the rank of this foreign conjunction should be added to the entry. 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