There is a lot more to tacit programming than hooks and forks. +/ is a tacit
expression. As Raul mentioned, the fork is simply the mathematical
expression (A + B)(x). Operators or functions (whatever they are) like - are
not just monadic or dyadic. Even in standard math, one has to look at their
position in an expression to determine whether it is monadic or dyadic.
Mathematical notation was not formally defined. It grew like Topsy. It has
many inconsistencies which Iverson addressed with his "Notation as a Tool
for Thought". Restricting a notation to a line and ASCII characters removes
a lot of the "prettyness" from the notation. Something about putting things
above and below the line just looks better. It's tough to come up with
decent looking glyphs using only ASCII.

I get lost looking at a lot of mathematical notation. It's squiggles and
bars all around symbols and Greek letters all over the place sure looks
pretty, but I just can't read a lot of it. Why? First, because I haven't
read all the background material. Each writer makes his own extensions to
standard mathematical notation. Takes a while to learn what all his
squiggles mean.

Reading math is tough. It takes practice. We've years of practice starting
in the first grade or before. Like spoken language we learn its
peculiarities and soon they look natural to us.

But this concern for "inconsistencies" is tacit expressions is a lot like
worrying about Markov notation for a beginning algebra student. Just stay
away from it. It's not an issue at that level.

We all get hung up liking something best. My first work processor was Word
Perfect. There will never be a better word processor. Try telling that to a
Word Star bigot.

Tacit expressions are different, but they are a notation which greatly
expands what can be expressed mathematically. Many things difficult or
clumsy in standard mathematical notation become easy and clear. Some become
clumsy and require @ and other conjunctions to specify how arguments are to
be applied. I like to think of these like UNIX pipes. Everybody loves pipes
and have no problem reading UNIX command lines with them.

The first time I saw a tacit expression I couldn't understand it at all!
Then, after many weeks as I didn't need tacit expressions based on my
experience at that time, I saw it. The fork was what was completely clear
and pretty as when a math teacher put it on the board

   (A + B)(x) <-> A(x) + B(x)

From there I gradually expanded my understanding of tacit expressions. But
many times I have to mentally convert them to non-tacit as that is most
comfortable for me. Just because I have been reading that for over 50 years.
Tacit for just a few.

2009/4/25 Björn Helgason <[email protected]>

> If you want J to work very simply you can use it strictly as monadic.
>
> For a beginner that is probably enough.
>
> In a user written verb you can pass (y) into the verb that has two parts
> like (x;y)  and split  them up  into  x and why  inside the  verb  before
> use.
>
> Then you rules to follow is very simple.
>
> 2009/4/25 Don Watson <[email protected]>
>
> > _____________________________________________________
> >
> > EXPLICIT J
> >
> >    In explicit J, a monadic verb takes an argument from its right,
> > transforms it and passes it to its left:
> >
> >            <-----------Monadic verb<---------------
> >
> >    So in a stream of monadic verbs, execution proceeds through each
> monadic
> > verb in turn:
> >
> > <-- Monadic verb <-- Monadic verb <-- Monadic verb <--Monadic verb<--
> >
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to