Hey all,

I am posting a long email as I am hoping to understand from the collective
wisdom here.  Apologies if this was somewhere in the archives but I have
not been able to find it.

I’m trying to understand the subtleties in binding conjunctions via tacit
forks (or anything tacit).  My fumbling has proved mildly
counter-intuitive, and I’m hoping someone here can point me in the right
direction and/or confirm my conclusions are directionally correct.

Problem:  I want to create a verb that allows be to create an identity
matrix filled with a numeral (filled-noun) like:

 1 Myverb 4

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Or

2 Myverb 4

2 0 0 0

0 2 0 0

0 0 2 0

0 0 0 2

I know there are many ways to do this and the point of the task is purely
for me to experiment with tacit composition.

I found, quite easily I could do

   ({.&1) 5

1 0 0 0 0

And therefore

   4 4    $ ({.&1) 5

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Which leads me to

   (2&#@:<:    $ {.&1) 5

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Using a monadic fork.

But now I want to pass the bound noun to Take ( {. ) so that it’s not just
hard-coded as a ‘1’ and thus need a dyadic fork.

I stumbled into something that works but left me with questions (notice I
had to switch sides for dimension and the filler-noun):

   Myverb =:      2&#@:<:@:[ $     {.&]



   5 Myverb 3   NB. The 5 is the shape of the square, and

                        NB.     the ‘3’ is the filler (the opposite of what
I wanted originally)

3 0 0 0

0 3 0 0

0 0 3 0

0 0 0 3

The right-verb in the fork seems to be where I had a problem truly
understanding.  Given that the above works, I thought that swapping the
SameLeft verb and the SameRight verb _should_ give me the following that
works

      Myverb   =: 2&#@:<:@:[     $ {.&]

      Myverb2 =:      2&#@:<:@:] $     {.&[ NB. Just swapping the ‘]’ and
the ‘[‘

But it gives me weird results.

   3 Myverb2 5

5 0 0 5

0 0 5 0

0 5 0 0

5 0 0 5

I think I was able to figure it out by realizing that in the phrase

    {.&[

The ‘leftness’ of the SameLeft verb binds overrides the syntactic
suggestion that the input will be bound to the right, and thus

   3  {.&[  5

5 0 0

Gets reshaped into the matrix I did not want.  Given that, I can finally do:

      Myverb3 =:      2&#@:<:@:] $     {.~&[

   _1 Myverb3 5

_1  0 0  0

 0 _1  0 0

 0  0 _1  0

 0  0 0 _1

By commuting the right verb in the fork.

As I was concentrating just on the conjunction I got the following results,
and think I understand, but would appreciate confirmation, a pat on the
back, or further readings:

    ({.&[)  5 NB.  Experiment (A)

5

    ({.&])  5 NB.  Experiment (B)

5

   3 ({.&])  5 NB. Experiment (C)

5 0 0

   3 ({.&[)  5 NB. Experiment (D)

5 0 0

   5 ({.&)          NB. Experiment (E)

{.&5

   ({.&) 5          NB. Experiment (F)

|syntax error

   5 (&{.)           NB. Experiment (G)

5&{.

    (&{.)  5   NB. Experiment (H)

|syntax error


Summary:

In experiment (A) the monadic application turns the SameLeft into Same
which feeds its results (via compose) to Head and resolves to {. 5  and
thus 5.

In experiment (B) the same thing occurs except it is SameRight into Same.

In experiment ( C) with a dyadic invocation, the SameRight’s ‘rightness’
binds the 5 to the right side, and  3 is fed as the left argument to as it
should.

In experiment (D) with a dyadic invocation, the SameLeft’s ‘leftness’ binds
the 3 to the left side of the argument (despite it looking like it is bound
on the right -- it is helpful now to understand ampersand as ‘compose’ and
not ‘bind) and the results are the same as experiment (C ).

In experiment (E) the conjuctive fragment (no SameRight or SameLeft) has
become an _adverb_ and thus seeks to the bind to the left -- and produces a
verb with a noun bound to the right.  NB. I was really confused when I saw
that this parsed.

In experiment (F) I proved to myself that the fragment without the
SameRight or SameLeft was just a naked adverb because I got a syntactic
error as an adverb resolves to the left.

In experiment (G) I moved the ampersand around on the fragment and saw that
now the ampersand was ‘respecting’ the direction of binding (binding on the
left instead of the right as in experiment (E)).  This also continued the
evidence that the fragment was an adverb.

Experiment (H) cemented my belief that either fragment   (&{.) or ({.&) are
induced adverbs.

Anyways, thank you for reading and I hope for some feedback.  In all of the
above, I think experiment D crystalizes the source of my initial (and
long-lasting) confusion, hopefully now resolved.

Thank you

Daniel Eklund
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to