Hi all !
Raul:
"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
"
http://www.cs.trinity.edu/About/The_Courses/cs2322/jdoc/dict/dicte.htm
EDGE+AVN NOUN VERB NOUN 2 Dyad
This is not the same rule?
If so, why is Bill then confirming that Raul is right?
Are bidents and tridents the items the interpreter acts on, which could be
nouns, verbs, adverbs or conjunctions, or are they only combinations of verbs,
adverbs and conjunctions?
It seems with tacit J we have no nouns, which means the bidents and tridents
are verbs, adverbs and conjunctions. With explicit J we also have nouns, and
the bidents and tridents can also contain nouns?
The combinations of two and three words in the left column in the document
above are the bidents and tridents?
Then we have the specific rules, named the bident and trident rules in the lack
of other names? And these names caused some confusion?
We all say things which are not entirely correct, but if we and others then try
to cover it up, we can create a major confusion.
Cheers,
Erling Hellenäs
On 2017-10-13 17:28, Jose Mario Quintana wrote:
Or it looks like I was incorrect, in terms of the thinking that went
behind it.
I would like to make this clear: neither I claimed you were incorrect nor
correct.. I merely pointed out that the list (specification) to which you
reacted was not mine.
Even though the noun train would not handled as a trident by the
parser, it looks like Ken had that in mind as a part of the structure
of the implementation.
Who's list (specification) was that?
The last word on the page which Dan Bron referred, is "Main" and links to,
http://www.cs.trinity.edu/About/The_Courses/cs2322/jdoc/dict/main1.htm
The beginning of that page reads,
"
J Dictionary
Roger K.W. Hui
Kenneth E. Iverson
Copyright 1991-2001, Jsoftware Inc. All Rights Reserved. Last updated:
2000-12-02
"
Thanks,
--
Raul
On Thu, Oct 12, 2017 at 10:59 PM, Raul Miller <[email protected]> wrote:
Or it looks like I was incorrect, in terms of the thinking that went
behind it.
Even though the noun train would not handled as a trident by the
parser, it looks like Ken had that in mind as a part of the structure
of the implementation.
Thanks,
--
Raul
On Thu, Oct 12, 2017 at 10:12 PM, bill lam <[email protected]> wrote:
Raul is correct, as usual. The train N V N was not handled in the rule
for
trident. Here is the previous pages for execution stack and trains. Monad
and dyad were checked in the first 3 rules. Rules for trident and bident
were near the bottom.
https://i.imgur.com/2a3mBFS.jpg
On Oct 13, 2017 8:28 AM, "Raul Miller" <[email protected]> wrote:
Ah, it's from http://www.cs.trinity.edu/About/The_Courses/cs2322/jdoc/
dict/dictf.htm
(Bill's link did not claim that that example was a trident, as near as
I can tell.)
That said, I stand by my assertion that J would not treat (N V N) as a
trident.
Thanks,
--
Raul
On Thu, Oct 12, 2017 at 6:20 PM, 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/forum
s.htm
------------------------------------------------------------
----------
For information about J forums see http://www.jsoftware.com/forum
s.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