The "Golden Age" J and your Jx are powerful but it requires thinking in another level, I don't think they will be resurrected or implemented in the current J. Extensive discussion on J programming forum may cause confusion to some members. Do you host a Jx specific or J mutant (no offense intended) forum?
On Oct 13, 2017 6:20 AM, "Jose Mario Quintana" < [email protected]> wrote: > That is not "my" list, check carefully Dan Bron's PS in the first link I > provided or Bill's link earlier in this thread. > > On Thu, Oct 12, 2017 at 6:02 PM, Raul Miller <[email protected]> > wrote: > > > Some of your list of "all possible tridents and bidents" would only be > > possible if other parsing rules were removed or evaded (monad, dyad, > > adverb, conjunction). > > > > For example, the first one you list: > > N0 V1 N2 noun x V1 y > > > > This would typically be a dyad, and I cannot think of any way for it > > to be treated as a triad (it's true, of course, that when you modify > > the interpreter it's true that you can alter it in any way you see fit > > - but it's difficult to think of this result as being J). > > > > Was that your intent, or am I missing something? > > > > (Or... if you really meant to be discussing not "J" but more "a topic > > which might interest some people in the J community", shouldn't this > > kind of discussion go on in a different forum? Perhaps chat?) > > > > Thanks, > > > > -- > > Raul > > > > On Thu, Oct 12, 2017 at 5:48 PM, Jose Mario Quintana > > <[email protected]> wrote: > > > A common goal of the Jx trains and many of the Jx primitives and > foreign > > > conjunction entities is to lift J's draconian (tacit) function-level > > > restrictions. Jx facilitates tacit verbs, adverbs, and conjunctions to > > act > > > on nouns, verbs, adverbs and, conjunctions and > > > produce nouns, verbs, adverbs and, conjunctions. That is, almost any > > type > > > entity can act on any type entity to produce any type entity. > > > > > > The Jx trains are either completely new or extended implementations of > > > current or former trains. The Jx trains conform to the general scheme > of > > > the Parse Table shown on page 2 of the Cheatsheet and the only > difference > > > vs the current J Parse Table is the Trident parsing entry. > > > > > > This extra entry might have a potential negative effect in Jx's > > performance > > > vs J; after all, that was one of the reasons given for dropping the > > Trains > > > of the Golden Age (for reference I am including, at the end of this > > post, a > > > text version which most likely matches the one in the link that Bill > > > provided earlier). How important is the performance penalty? I would > be > > > surprised if it is significant; one could try to quantify it although > the > > > usual caveats would apply (e.g., repeat the experiments several times > to > > > confirm results). > > > > > > First, a few useful definitions follow to facilitate the discussion, > > > > > > o=. @: > > > 'adv conj ver'=. _1 _2 _3 <@?: 0 > > > fix=. f. ver NB. (a v) form > > > > > > > > > a v <-> v(a) > > > > > > This form is non-compliant; thus, it is intrinsic only to Jx. One can > > use > > > this form, for instance, to produce easily arrays with single or > multiple > > > boxed adverb arguments and verbs (or adverbs or conjunctions) can act > on > > > the array. For example, a single boxed adverb, > > > > > > /< > > > ┌─┐ > > > │/│ > > > └─┘ > > > > > > and multiple boxed adverbs, > > > > > > [:(/\<) (items < o fix o ":) (table < o fix o ":)]: > > > ┌──┬───┬──────────────────────────────────────────────────── > ──────────┐ > > > │/\│"_1│1 : (':'; '(((#~LF-.@e.])5!:5<''u'');,.y),.({.;}.)":x,y > u/x')~│ > > > └──┴───┴──────────────────────────────────────────────────── > ──────────┘ > > > > > > This form also helps to avoid quoting adverbs. Apart from aesthetical > > > effects (my aesthetics anyway), it allows the verb xi, which I have > > > mentioned before, to refer directly to an adverb (or adverbs) within a > > > sentence. > > > > > > > > > x (a a) <-> (x a) a > > > > > > This form corresponds to the entry > > > > > > A0 A1 adv (x A0) A1 > > > > > > of the Parse Table of the Golden Age. To my knowledge, it has not been > > > fully implemented before. Currently, J only works if the product of (x > > a) > > > is a noun or a verb (there have been discussions about producing the > > train > > > if the product of (x a) is an adverb. Jx implements that and also the > > case > > > when the product of (x a) is a conjunction. This is very useful when > > > writing tacit adverbs as a train of adverbs: if ((x a) a) produces the > > > desired product then the adverb (a a) would work because (x (a a) <-> > (x > > a) > > > a). For example, > > > > > > 'items' ((~ver) adv) / > > > items/ > > > 'items' (((~ver) adv) /) > > > items/ > > > > > > 'items' ('x~' (adverb :)) / > > > items/ > > > 'items' (('x~' (adverb :)) \) > > > items\ > > > > > > The last line produces instead a syntax error in J. > > > > > > > > > a c <-> (c)a > > > > > > This form is non-compliant; thus, it is also intrinsic only to Jx. Its > > > motivation parallels the one for the form (a v <-> v(a)). For > > example, a > > > single boxed conjunction, > > > > > > <adv (`/) > > > ┌───┐ > > > │` /│ > > > └───┘ > > > > > > and multiple boxed conjunctions, > > > > > > [:(<adv") (< o fix o ": adv bind)]: > > > ┌─┬─────────────┐ > > > │"│2 : 'x@(y"_)'│ > > > └─┴─────────────┘ > > > > > > > > > The Jx extensions of the corresponding Golden age entries, > > > > > > x (c a) y <-> x c y a : C0 A1 conj (x C0 y) A1 > > > x (a c a) y <-> (x a) c (y a) : A0 C1 A2 conj (x A0) C1 (y A2) > > > > > > deserve, in my opinion, a separate thread. I will try to start one > > during > > > the weekend (time permitting). Succinctly, the two trains (the first > > one, > > > in particular) are powerful enough that if they were restored in > > official J > > > interpreters then conjunctional tacit programming would be virtually > > > complete as opposed to impossible. > > > > > > I hope it helps, > > > > > > PS. I wish I had more time to read and respond to posts more > frequently; > > > however, most of the time, I eventually respond if I feel I can still > > > contribute. Thank you for your patience. > > > > > > > > > Train Table of the Golden Age > > > > > > (see, > > > http://www.jsoftware.com/pipermail/programming/2009- > December/017146.html > > > and http://www.jsoftware.com/pipermail/programming/2009- > > December/017145.html > > > ) > > > > > > The following tables define all possible tridents and bidents, using > > > italics to denote the optional left arguments of (ambivalent) verbs: > > > > > > N0 V1 N2 noun x V1 y > > > V0 V1 V2 verb (x V0 y) V1 (x V2 y) > > > V0 V1 C2 conj V0 V1 (x C2 y) > > > A0 V1 V2 adv (x A0) V1 V2 > > > C0 V1 V2 conj (x C0 y) V1 V2 > > > C0 V1 C2 conj (x C0 y) V1 (x C2 y) > > > A0 A1 V2 conj (x A0) (y A1) V2 > > > A0 A1 A2 adv ((x A0) A1) A2 > > > C0 A1 A2 conj ((x C0 y) A1) A2 > > > N0 C1 N2 verb x (N0 C1 N2) y > > > N0 C1 V2 verb x (N0 C1 V2) y > > > N0 C1 A2 adv N0 C1 (x A2) > > > N0 C1 C2 conj N0 C1 (x C2 y) > > > V0 C1 N2 verb x (V0 C1 N2) y > > > V0 C1 V2 verb x (V0 C1 V2) y > > > V0 C1 A2 adv V0 C1 (x A2) > > > V0 C1 C2 conj V0 C1 (x C2 y) > > > A0 C1 N2 adv (x A0) C1 N2 > > > A0 C1 V2 adv (x A0) C1 V2 > > > A0 C1 A2 conj (x A0) C1 (y A2) > > > A0 C1 C2 conj (x A0) C1 (x C2 y) > > > C0 C1 N2 conj (x C0 y) C1 N2 > > > C0 C1 V2 conj (x C0 y) C1 V2 > > > C0 C1 A2 conj (x C0 y) C1 (y A2) > > > C0 C1 C2 conj (x C0 y) C1 (x C2 y) > > > N0 A1 verb x (N0 A1) y > > > N0 C1 adv N0 C1 x > > > V0 N1 noun V0 y > > > V0 V1 verb x (or y) V0 V1 y > > > V0 A1 verb x (V0 A1) y > > > V0 C1 adv V0 C1 x > > > A0 V1 adv (x A0) V1 > > > A0 A1 adv (x A0) A1 > > > A0 C1 adv (x A0) C1 x > > > C0 N1 adv x C0 N1 > > > C0 V1 adv x C0 V1 > > > C0 A1 conj (x C0 y) A1 > > > > > > > > > On Thu, Oct 12, 2017 at 3:51 AM, Erling Hellenäs < > > [email protected]> > > > wrote: > > > > > >> Hi all ! > > >> > > >> I have a hard time finding the new rules among these old rules. > > >> > > >> While in the Jx description x and y denotes verbs, in Ken Iversons > > >> description they denote nouns? > > >> > > >> Take the bident a0 v1. According to Ken Iverson it should be parsed as > > (x > > >> a0) v1, while in Jx, using the same notation, it is parsed as (v1 a0) > y > > ? > > >> > > >> Does Jx represent a new way of thinking about how these trains should > > be > > >> parsed, which Ken Iverson did not have? > > >> > > >> Cheers, > > >> > > >> Erling Hellenäs > > >> > > >> > > >> > > >> Den 2017-10-12 kl. 04:09, skrev bill lam: > > >> > > >>> As mentioned earlier, ancient J had a more complete set of > > >>> rules for tridents and bidents. This is what availbale in > > >>> J circa 1994 (23 years ago) > > >>> > > >>> https://i.imgur.com/OtBZZq1.jpg > > >>> > > >>> In the good old days, adverbs and conjunctions can be > > >>> written without explicit definitions, albeit only very > > >>> few can manage to do that. > > >>> > > >>> Ср, 11 окт 2017, Erling Hellenäs написал(а): > > >>> > > >>>> Hi all! > > >>>> > > >>>> I finally managed to understand Cloak. I then with interest studied > > these > > >>>> new syntax rules: > > >>>> > > >>>> av ↔ v(a) > > >>>> x(a a) ↔ (x a) a > > >>>> ac ↔ (c)a > > >>>> x(c a) y ↔ x c y a > > >>>> x(a c a) y ↔ (x a) c (y a) > > >>>> > > >>>> It all seemed logical and nice. I just wonder about the thoughts > > behind. > > >>>> What is the logic behind these rules? > > >>>> > > >>>> I also wonder if there are any negative effects of having these > rules. > > >>>> > > >>>> Cheers, > > >>>> > > >>>> Erling Hellenäs > > >>>> > > >>>> > > >>>> > > >>>> On 2017-09-30 23:27, Jose Mario Quintana wrote: > > >>>> > > >>>>> Jx 1.1 Release > > >>>>> > > >>>>> A Jx v1.1 Extensions Guide, a J/Jx Cheatsheet, a Jx Assertions > script > > >>>>> together with links to a Windows 64 bit dll, a Unix 64 bit so > > binaries > > >>>>> (without avx support) and the patch corresponding to the J806 > source > > >>>>> (beta-6) can be found at the link [0]. > > >>>>> > > >>>>> Summary > > >>>>> > > >>>>> - Primitives > > >>>>> Added =.. =:: $:: [. ]. ]: ".. `. &:.(*) ?:(*) i.. O. > > >>>>> Extended ~ $. > > >>>>> Modified " (*) > > >>>>> > > >>>>> - Foreign > > >>>>> Added 104!:5 Unnamed Execution 102!:0/1 In-place > > >>>>> Amend/Append (*) > > >>>>> > > >>>>> - Trains > > >>>>> a v Added > > >>>>> a a Extended > > >>>>> c a Resurrected and extended (*) > > >>>>> a c a Resurrected and extended (*) > > >>>>> > > >>>>> - Spelling > > >>>>> Names with Unicode characters > > >>>>> > > >>>>> (*) New Jx 1.1 feature > > >>>>> > > >>>>> This release introduces a modified primitive (") and, in theory, > for > > the > > >>>>> first time an incompatibility vs the official J counterpart (J806 > > >>>>> beta-6) ; > > >>>>> however, in practice, it is highly unlikely to break any existent > > code > > >>>>> and > > >>>>> doubters have an opportunity to test their code. > > >>>>> > > >>>>> This is a simple 1-decade-old example [1], > > >>>>> > > >>>>> ]`|."1 i.5 6 > > >>>>> 0 1 2 3 4 5 > > >>>>> 11 10 9 8 7 6 > > >>>>> 12 13 14 15 16 17 > > >>>>> 23 22 21 20 19 18 > > >>>>> 24 25 26 27 28 29 > > >>>>> > > >>>>> See also the threads [2, 3] for recent discussions. > > >>>>> > > >>>>> The rank of the verb ?: has been changed to 0 0 0 to make it easier > > to > > >>>>> use. > > >>>>> > > >>>>> Three venerable facilities are released: > > >>>>> > > >>>>> - The conjunction (&:.), for the motivation, see the post [4] (see > > also > > >>>>> the > > >>>>> post [5] both, its reference and the embedded discussion for > similar > > >>>>> more > > >>>>> recent ideas). > > >>>>> > > >>>>> - 102!:0/1 In-place Amend/Append, be very careful (see [6]); if you > > do > > >>>>> not > > >>>>> know what to expect, play with their corresponding models instead. > > >>>>> > > >>>>> PS. There are a couple of other goodies which will be documented > > later. > > >>>>> > > >>>>> > > >>>>> References > > >>>>> > > >>>>> [0] Jx 1.1 Release > > >>>>> http://www.2bestsystems.com/foundation/j/jx1.1 > > >>>>> > > >>>>> [1] [Jprogramming] zig-zag order Oleg Kobchenko > > >>>>> http://www.jsoftware.com/pipermail/programming/2006-November > > >>>>> /004188.htm > > >>>>> > > >>>>> [2] [Jprogramming] How m"n shoulda been defined Henry Rich > > >>>>> http://www.jsoftware.com/pipermail/programming/2015-August/0 > > >>>>> 42512.html > > >>>>> > > >>>>> [3] [Jprogramming] Jx version 1.0 release Henry Rich > > >>>>> http://www.jsoftware.com/pipermail/programming/2017-August/0 > > >>>>> 48124.html > > >>>>> > > >>>>> [4] [Jforum] Wasted intermediate values Jose Mario Quintana > > >>>>> http://www.jsoftware.com/pipermail/general/2003-March/ > > 014488.html > > >>>>> > > >>>>> [5] [Jprogramming] Fold/reduce with initial value? R.E. Boss > > >>>>> http://www.jsoftware.com/pipermail/programming/2015-February > > >>>>> /041015.html > > >>>>> > > >>>>> [6] [Jprogramming] Tacit J and indexed replacement Jose Mario > > Quintana > > >>>>> http://www.jsoftware.com/pipermail/programming/2014-July/038 > > >>>>> 515.html > > >>>>> ------------------------------------------------------------ > > ---------- > > >>>>> 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
