----- Original Message ----- 
From: "bill lam" <[email protected]>
To: <[email protected]>
Sent: Wednesday, April 22, 2009 10:02 PM
Subject: Re: [Jchat] Language S


>I only read the doc in brief, your notation such as
>   D M M M
>
> is non-J in that verb is ambivalent. eg `%' could mean division or
> reciprocal depending on context (untested).
>
> -- 
> regards,
> ====================================================
> GPG key 1024D/4434BAB3 2008-08-24
> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> 唐詩249 賈島  尋隱者不遇
>    松下問童子  言師採藥去  只在此山中  雲深不知處
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

__________________________________________________________________

    At some point a decision was made to abandon the right to left rule with
the fork, which is the fundamental component of tacit programming. The (MDM)
format leads to a strict verb alteration MDMDMDMDM in tacit programming. The
way J identifies whether a verb symbol is monadic or dyadic is by its
position in the verb train - the first is monadic, the second dyadic and so
on.

    Extra monadic verbs usually need to be inserted in the train, for
example, supposing the following sequence is needed:

                        (M1 M2 D1 M3 D2 M4 M5 D3 M6)

    When J looks at M4 , it assumes it is dyadic, since it is the fourth
from the right. To compensate for this, "@" is inserted between M4 and M5 .

                        (M1 M2 D1 M3 D2 M4 @: M5 D3 M6)

    So the purpose of "@" is to say: "The verb on my left is monadic, not
dyadic". The "@" also acts like parentheses in that it makes certain that M4
is used before D3  Supposing we don't want M1 to be used before D1  We
cannot use "@". This means that M1 will be interpreted as dyadic and create
a fork. A cap needs to be placed at the end to say: "The verb on my right is
monadic, not dyadic".

                        ([: M1 M2 D1 M3 D2 M4 @: M5 D3 M6)

    In addition, parentheses have to be added to say: "This is tacit 
programming"

    By making the fork (M)DM , where (M1)DM2y is interpreted
as (M1y)DM2y ,the right to left rule is maintained with code containing
forks and hooks, it is easy to tell which verbs are monadic and which 
dyadic.
Inserts like "@:" and "[" are not needed to label some verbs to be monadic
when they are expected to be dyadic. The parentheses are not needed and what
was tacit programming has been integrated into the rest of the programming.

Don Watson



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

Reply via email to