Somewhere I read a proposal for user defined primitives in some language. Essentially, permitting tokens of a standard form like #INTEGER allows for a whole lot of user defined primitive operations that can be parsed and compiled.
j makes heavy use of this concept via conjunctions to super-duper load j with verbs. The foreign verbs derived from m!:n are the largest class of such. Considering operating system and gtk connections and I'm afraid I don't really know what else beyond appendix A of the dictionary there are at least hundreds of verbs. ;. cut uses the 7 integers i:3 to specify what sort of cut to use. ;: dyadic sequential machine uses a number from i.6 to select the output style. `: evoke gerund offers choices 0 3 or 6 (combinations? I've never tried such!) to select among different ways the verbs of the gerund could be applied. You can control prefix, suffix, infix, outfix length and overlap with an integer. (adverbs) Indeed, j extends this idea using gerunds. See the gerund forms of ^: , } , / (power, amend, and insert) off the top of my head... Even rank accepts a verb right argument (v) where one (me) wouldn't expect. > Date: Sun, 20 May 2012 19:09:17 -0400 > From: jake wilson <jakewilso...@gmail.com> > Subject: [Jprogramming] Verb Definition > To: programming@jsoftware.com > Message-ID: > <caadtqwyrrmspte-vsw5tnujhya7wycxu6ogjkod3oqqz6t6...@mail.gmail.com> > when defining a verb, the J Primer says to write this: > > centigrade =. 3 : 0 > > > > what is the 3 for there? I assumed it was because following that > statement, the primer says to define three variables, t1, t2, and t3, > but > then on the next page it uses the same definition, but only defines > one > variable. Also, what is the zero for? > > Thanks, > -Jake > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm