That sentence is very interesting. How did originate? My guess is that it was not an accident.
Rather than a problem I see a potential opportunity; it is a tacit construction and, usually, variants of self-replicating forms can be quite useful. The sentence f^:] 0&]`] is akin to the sentence $: 0 ; one should be careful about what one is asking the interpreter to accomplish. In my opinion, the users should be, and ultimately are, responsible for their actions. There are many other trouble making sentences, ($: $: $:)_ (>:^:6666666666666666666666666666666666666666x)0 ]`]}]`] etc. Why one should be focusing on this f^:] 0&]`] (and other similar sentences involving ^:) in particular? The easiest fix seems too drastic, to me at least, since it would imply changing not just the Dictionary entry for ^: (incidentally, in that entry } is referred as the "merge" adverb, which is news to me) but arguably also for } since the sentence ]`]}]`] also crashes the interpreter in a similar fashion. For an example where creating a gerund makes sense see [0]; not to mention [1]. For what is worth, clearly, I do not like this proposal: it would require changes to the dictionary; these changes would add complexity to the definitions; the definitions would be less consistent since they would introduce exceptions. Although the change would prevent certain crashes, which are unlikely to occur by chance, it would do so by forcing a limitation which might even brake some existent code. PS. After years of neglect, I am glad to see a lot of activity around the J Engine. I am particularly interested to experience the results of the Reference count update status project. References [0] [Jprogramming] conjunction in tacit verb http://www.jsoftware.com/pipermail/programming/2015-February/040994.html [1] [Jprogramming] applying >1 gerunds to a set of items http://www.jsoftware.com/pipermail/programming/2013-January/031234.html On Wed, May 11, 2016 at 10:02 PM, chris burke <cbu...@jsoftware.com> wrote: > ---------- Forwarded message ---------- > From: Henry Rich <henryhr...@gmail.com> > Date: 8 May 2016 at 12:17 > Subject: In u^:v, v may not return a gerund (proposal) > To: jeng...@jsoftware.com > > > I am working on an old problem: > > f^:] 0&]`] > > crashes, because executing ] creates a gerund, which executes to produce > the same gerund, etc. > > The easiest fix is to decree that in u^:v, ([x]v y) may not produce a > gerund. Similarly in the forms u^:[v0]`v1`v2, ([x] v1 y) may not produce a > gerund. > > Anybody got a problem with that? I can't think of any case where creating > a gerund makes any sense at all. > > Henry > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm