Some notes: (1) This suggests that it would be legal for a verb result to be a verb (because unbox is a verb and the proposal is that it produce verb results).
(2) Currently, we get crashes in some contexts where this behavior has been allowed to leak into the interpreter. (3) By making the leak "official" we introduce new potential "leaky abstraction" issues, which suggest that in some cases it may become legal for a verb to be an argument to a verb. For example, consider verbs like ;L:0 or ,~&.> or whatever with boxed arguments where some or all of the boxes "contain verbs". There may be other issues? Thanks, -- Raul On Thu, Aug 3, 2017 at 3:57 AM, Marshall Lochbaum <mwlochb...@gmail.com> wrote: > Can I just point out that it's not too late to add some (documented) way > to box verbs/adverbs/conjunctions? These could be treated as gerunds by > everything that currently uses gerunds, and the interpreter can just > throw an error if anything attempts to actually unbox them. They are > much harder to confuse than the current gerunds, and will have far > better performance. > > This sounds like a radical divergence from the way J works now, but I > don't think it is in practice. Programmers would use some new > conjunction to replace (`), and provided they don't inspect the > structure of gerunds nothing else changes. I suppose there would need to > be a way to check what class of object a box contains, because unboxing > to check the type is not allowed. Gerunds would remain useful for > programmers who want to inspect functions or build them from scratch, > but would otherwise become obselete. > > Marshall > > On Thu, Aug 03, 2017 at 09:01:37AM +0800, Bill wrote: >> J interpreter must know when a noun is a gerund, so is it possible to add a >> new primitive to test for gerund? Or is there already J script to test for >> gerund? >> >> Sent from my iPhone >> >> On 3 Aug, 2017, at 3:36 AM, Henry Rich <henryhr...@gmail.com> wrote: >> >> > I expect to make some more improvements to dyad u"n, and eventually to >> > rewrite the monad to match the dyad. My availability to work on this will >> > be intermittent for a while. The 8.06 code as is works, and fixes a >> > long-standing bug reported by Martin Neitzel. >> > >> > I have suggested using m"n, where n is not _, to implement a cyclic gerund >> > m. If m doesn't look like a gerund, it would be treated as a simple noun. >> > While this is not strictly compatible, I think it very unlikely that it >> > would break any existing code. I think m"n was wrongly defined and that >> > this is the correct definition. My opinion is not universally shared so I >> > haven't acted on it. >> > >> > Henry Rich >> > >> > On Wed, Aug 2, 2017 at 5:03 PM, Thomas Costigliola <fo...@iocane.net> >> > wrote: >> > >> >> You can try removing the conditional statement enclosing that line, but >> >> for now I would say the patch is broken under Clang. Since the rank code >> >> was completely rewritten in J805 and J806 and ":: is based on the J804 >> >> rank >> >> with some unfinished updates Henry was working on, the real solution is to >> >> rewrite ":: based on the new rank code. But that should wait until the >> >> code >> >> is stable. Does anyone anticipate more changes? >> >> >> >> On a more philosophical note, ":: implements gerund left arguments that >> >> apply to the items cyclically. The reason for adding a new primitive and >> >> not extending ": is because it breaks using ": to define constant >> >> functions. If someone has any ideas to make them play nicely together then >> >> they can be merged into a single primitive. The issue is that there is no >> >> distinction between a noun and gerund. >> >> >> >> Regards, >> >> -Thomas >> >> >> >> >> >> On 08/02/2017 11:52 AM, bill lam wrote: >> >> >> >>> Yes, I use Clang and have -Werror -Wextra in CFLAGS. >> >>> Sometimes vs2013 is much less tolerant. >> >>> >> >>> Ср, 02 авг 2017, Thomas Costigliola написал(а): >> >>> >> >>>> That looks like Henry's code taken from cr.c at some older version. It >> >>>> compiles fine for me in GCC and Visual Studio 2013. It is in the >> >>>> implementation of "::, which seems to be working in my tests, so that >> >>>> code >> >>>> never gets hit. Are you using Clang? It's much less tolerant of code >> >>>> like >> >>>> that. >> >>>> >> >>>> Regards, >> >>>> -Thomas >> >>>> >> >>>> On 08/02/2017 11:21 AM, bill lam wrote: >> >>>> >> >>>>> When I tried to compile, but this line in best.c failed. >> >>>>> >> >>>>> *((I*)0)=0; // scaf >> >>>>> >> >>>>> and I can not understand its intention, access to memory >> >>>>> address 0 should cause segfault. >> >>>>> >> >>>>> Вт, 01 авг 2017, Jose Mario Quintana написал(а): >> >>>>> >> >>>>>> A brief description of the Jx v1.0 extensions, together with links to >> >>>>>> a >> >>>>>> Windows 64 bit dll, a Unix 64 bit so binaries and the patch >> >>>>>> corresponding >> >>>>>> to the J806 source can be found at, >> >>>>>> http://www.2bestsystems.com/foundation/j/jx1 >> >>>>>> >> >>>>>> Summary >> >>>>>> >> >>>>>> - Spelling >> >>>>>> - Names with unicode characters >> >>>>>> - Primitives >> >>>>>> Added =.. =:: $:: [. ]. ]: ".. ":: `. ?: i.. O. >> >>>>>> Extended ~ $. >> >>>>>> - Foreign >> >>>>>> Added 104!:5 Unnamed Execution >> >>>>>> >> >>>>>> - Trains >> >>>>>> a v Added (different from Jx v0) >> >>>>>> a a Extended (different from Jx v0) >> >>>>>> c a Resurrected >> >>>>>> a c a Resurrected >> >>>>>> >> >>>>>> The Jx v0 page, >> >>>>>> http://www.2bestsystems.com/foundation/j/jx0 >> >>>>>> will be removed in the near future >> >>>>>> >> >>>>>> Time permitting, there will be soon a script with assertions for those >> >>>>>> who >> >>>>>> want to verify binaries targeted for other platforms and I will try to >> >>>>>> illustrate the facilities in action with some scripts. >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> On Sat, Mar 8, 2014 at 11:40 PM, Jose Mario Quintana < >> >>>>>> jose.mario.quint...@gmail.com> wrote: >> >>>>>> >> >>>>>> >> >>>>>>> The patches, a Windows 32-bit DLL, a cheatsheet, 32 and 64 bit Unix >> >>>>>>> libraries are found at: >> >>>>>>> >> >>>>>>> >> >>>>>>> http://www.2bestsystems.com/foundation/j/ >> >>>>>>> >> >>>>>>> >> >>>>>>> For more details and demonstration code, see the article in the >> >>>>>>> Journal of >> >>>>>>> J: http://journalofj.com/index.php/vol-2-no-2-october-2013 (only the >> >>>>>>> definition of the new conjunction knot (`.) has been slightly >> >>>>>>> modified for >> >>>>>>> the release). >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> ------------------------------------------------------------ >> >>>>>> ---------- >> >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >> >>>> ---------------------------------------------------------------------- >> >>>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> >> For information about J forums see http://www.jsoftware.com/forums.htm >> > ---------------------------------------------------------------------- >> > For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm