I will suggest that the 2 essential trains are:
C0 A1 conj (x C0 y) A1 (your 2nd)
A0 C0 conj (x A0) C0 y
which would make the combination of the 2:
A0 C1 A2 conj (x A0) (C1 y) A2
and consistent with
A0 C1 A2 <=> (A0 C1) A2
IMO, the easiest way to promote tacit modifiers would be through the [. and ].
parameters:
({. [. {:) would be an adverb.
[. A0 C1 (]. A2) is the conjunction train you wanted.
basically [. and ]. would be exactly the same as u and v in explicit
definitions.
I would propose the extension [.. and [... and [.... as representing strand
notation parameters: [. is first (rightmost) left parameter, [.. is the one
just left of that. [... is further left
consider, the double adverb:
at =: 1 : '@:u'
- +/ at
-@:(+/)
its not quite the same as (usually a common error from intent)
-@:+/
but that can still be done with double adverb (with much clearer purpose) as
- + at/
-@:+/
tacitly, a strand version of a conjunction could be written as
([.. @:[.) equivalent to (@:[.) and at above.
and
+/ ([.. @:[.) would get simplified to ([. @:(+/)) and (@:(+/))
conjunctions have the advantage over double adverbs of being able to bind
either parameter, but the disadvantage is the annoying parsing feature of not
being able to take the part of its right phrase that you want to without
resorting to parentheses.
The benefits of [. [.. ]. is in crafting more complex modifiers than the above
that interject fixed verb and modifier parameters as well as [] modifier result
parameters.
The [.. and [... markers would allow 3 and 4 parameter modifiers that include
conjunctions with 2 or 3 left parameters. To me the train
(c0 c1) <=> ([.. ( c0 ([. c1 ].)) <=> (c0 ([. c1 ].))
so a 3 parameter conjunction, or a conjunction that returns an adverb. I'm not
completely insistent on that exact parsing order, but this allows partial
binding of
u1 u0 ((c0 c1) v) or
u1 v (u0 (c0 c1))
With the suggested parsing order,
] -@+: (`@.)(2|]) <=> ]`(-@+:)@.(2|])
but note that having a (c0 c1) interpretation is relatively unnecessary as long
as we have [. and ]. You can simply write tacitly with little effort, however
you'd prefer the (c0 c1) to be parsed:
(([. c0)(c1 ].)) is an adverb (outer parens needed to define phrase as
conjunction)
c0(c1 ].) is the conjunction (c a) discussed at top
The [.. and [... tokens may not be needed if the outer parens concept can be
implemented. For example the fork u1 u0 FORK v might be:
([. ([. ].)) or more clearly explicitly 2 : '[. u v'
but that parsing may be more (actually very) difficult than [.. disambiguity
which is simply defined as "what will be [. in returned expression", and then
].. has an obvious potential meaning/implementation as well.
([.. [. ].) becomes an unambiguous fork modifier definition
----- Original Message -----
From: Jose Mario Quintana <[email protected]>
To: Programming forum <[email protected]>
Sent: Thursday, March 17, 2016 12:53 PM
Subject: Re: [Jprogramming] Unbox request for requests
Pascal,
Regarding your question, the equivalence is,
x (C0 C1 C2) y <-> (x C0 y) C1 (x C2 y)
So x and y form just two parameters.
As far as I can see, tacit conjunctional programming would be complete, as
tacit adverbial programming already is, by bringing back just two of
tridents from the table of the Golden Age:
A0 C1 A2 conj (x A0) C1 (y A2)
C0 A1 conj (x C0 y) A1
Bringing back just the latter would almost make it complete; the only
caveat would be that the conjunctions produced would (almost always) only
take nouns if they were boxed. These tridents have been reincorporated in
Jx even if they are redundant because Jx supports directly wicked
conjunctional programming. However J Unbox does not support directly
wicked programming; thus, there is a case for bringing back those two
tridents. This would allow for both orthodox and (indirectly) wicked
complete conjunctional programming (one could write the pro-adverb conj
the counterpart the Tacit Toolkit pro-adverb adv.
Thomas,
That would be my request, bring back those two tridents.
On Wed, Mar 16, 2016 at 1:12 PM, Pascal Jasmin <[email protected]>
wrote:
> These are what I think they should be, and what I do with double adverbs,
> and what would become allowed again if (a0 a1) does not return syntax error
> when a0 returns an adverb.
>
> one question though,
>
> C0 C1 C2 conj (x C0 y) C1 (x C2 y)
>
> does this conjunction have 4 parameters (or are 2 parameters x and y
> duplicated for C0 and C2)?
>
> "fixing the bug", and representing conjunctions as double adverbs would
> allow the 4 parameter version as (c0 c2 c1) (includes partial (c2 c1)
> (potentially named) that has c0 bound later. For the 2 parameter version,
> there's always 2 : 'u c0 v c1 u c2 v'
>
>
>
>
> ----- Original Message -----
> From: Jose Mario Quintana <[email protected]>
> To: Programming forum <[email protected]>
> Sent: Wednesday, March 16, 2016 12:14 PM
> Subject: Re: [Jprogramming] Unbox request for requests
>
> NB. Train Table of the Golden Era
>
> http://www.jsoftware.com/pipermail/programming/2009-December/017146.html
> 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 Wed, Mar 16, 2016 at 12:01 PM, Jose Mario Quintana <
> [email protected]> wrote:
>
> > If I recall correctly the equivalence was,
> >
> > x (c a) y <-> (x c y) a
> >
> > where (x c y) a meant, at least for the interpreter, that the product
> of
> > (x c y) was passed, as the argument, to a. Furthermore, the interpreter
> > (mistakenly) allowed to pass adverbs and conjunctions to the adverb a
> > (again, if I recall correctly).
> >
> > On Wed, Mar 16, 2016 at 11:21 AM, Pascal Jasmin <[email protected]>
> > wrote:
> >
> >> Could someone remind me what
> >>
> >>
> >> (a c) and (c a) used to do as trains? (in J5)
> >>
> >> was (c c) ever allowed?
> >>
> >> (sorry this is difficult to search)
> >>
> >>
> >>
> >>
> >> ----- Original Message -----
> >> From: "[email protected]" <[email protected]>
> >> To: [email protected]
> >> Sent: Wednesday, March 16, 2016 10:12 AM
> >> Subject: Re: [Jprogramming] Unbox request for requests
> >>
> >> [For historical issues, it helps to spell out "Version" and "Release"
> >> with the numbers:
> >>
> >> J Version 1 was rather known as "APL\?" or "APL90 J" as
> >> presented in http://www.jsoftware.com/papers/J1990a.htm#intro
> >>
> >> J Version 2 - 7: = 1990-1993
> >>
> >> J Version 7 (open source) was then followed by the polished,
> >> commercial, non-source "J Release 2". The never was something
> >> called "J Release 1". (You are free to view the preceeding
> >> versions as the "Release 1s", but it is in no way an official
> >> designation.)
> >>
> >> J Release 2 ...: = 1994 and later
> >> ]
> >>
> >> Henry Rich asked:
> >> > How far back do you have to go to find an old system that allows an
> >> > adverb as an operand to an adverb?
> >>
> >> The AA bident is still working, and the question should rather be:
> >>
> >> "How far do you have to go back to find an old system
> >> which does *not* allow the AA bi-dent?"
> >>
> >> > 7 didn't allow it, did it?
> >>
> >> J Version 7 allowed it:
> >>
> >> neitzel 422 > j7
> >> J7 Copyright (c) 1990-1993, Iverson Software Inc. All Rights
> Reserved.
> >>
> >> 0!:0 'uname -a'
> >> ULTRIX ips 4.4 0 RISC
> >>
> >> APLscan =. /\
> >> + APLscan 1 2 3 4 5
> >> 1 3 6 10 15
> >>
> >> as did
> >>
> >> neitzel 426 > j
> >> J5.1 Copyright (c) 1990-1992, Iverson Software Inc. All Rights
> >> Reserved.
> >>
> >> which is the oldest version I have still running and which supports AA.
> >>
> >>
> >> The AA bident was first introduced with J Version 3.3:
> >>
> >> Changes in Version 3.3, 1991 06 25
> >> [...]
> >> a-trains implemented
> >> c-trains implemented
> >>
> >> (I cannot find the AA bident yet in the blue "Tangl.Math + DoJ" booklet
> >> which must be Version 2.9ish or even 3. It is listed in the J Version 4
> >> DoJ.)
> >>
> >> While I saved the CS department's decsystem from being scrapped and
> still
> >> operate it 24/7, my even earlier J Versions were binary-only (DOS), and
> >> almost vanished along with the my office's PC-XT which mainly served
> >> as terminal hooking into our Unix systems.
> >>
> >> But I found a "floppies.tgz" from that time with J Version 2.9,
> >> fired up "dosemu", and so here is a "pre-AA J:"
> >>
> >> https://www.gaertner.de/~neitzel/img/no-aa-j29.jpg
> >>
> >>
> >> The list of possible trains was the same for J Version 5.1 - J Version
> >> 7. J Release 2 added further ones, such as A0 V1 V2.
> >>
> >> J Release 5.1 [2002] did away with the more complex bi/tridents:
> >>
> >> * All tridents (dictionary Section II F) other than the
> >> verb-verb-verb case no longer work.
> >> * All bidents (dictionary Section II F) other than the verb-verb,
> >> adverb-adverb, and conjunction with an argument cases no longer
> >> work.
> >>
> >> IIRC, the reason stated for the removals was "are in the way for
> improved
> >> debugging". Did it improve?
> >>
> >> (I am asking because I didn't bother to do anything with J Release
> 5.x/6.x
> >> myself for licensing and src reasons. I remained a happy camper with
> >> J Rel. 4, and still run it on more obscure systems such as the Sharp
> >> Zaurus.)
> >>
> >> Martin Neitzel
> >>
> >> ----------------------------------------------------------------------
> >> 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