Re: [stack] language hierarchy

"William Tanksley, Jr" <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
Christopher Diggins <[email protected]> wrote:
> > > So concatenation of terms in Haskell denotes application, but it isn't
> > > considered a concatenative language according to your definition. Try
> > > explaining that to a random group of programmer or computer scientists
> > > and see what their reaction is.

> > But it doesn't, I think. Concatenation of terms in Haskell perhaps
> > offers those terms for partial application; but the application only
> > happens if the first term denotes a function with a free variable.

> That statement is simply false.
> See: http://www.haskell.org/onlinereport/exps.html
> "Function application is written e1 e2."

I can't read that page, unfortunately (a lack of experience with the
grammar); but from the look of it, the grammar is a LOT more complex
than you're implying. It's true that function application is written
e1 e2; but that doesn't mean that everything written as e1 e2 is a
function application. Does it? And in fact, right above the informal
discussion of e1 e2, there's a grammatical and precise note about
"[fval] aval", which seems to imply a distinction between functions
and things which can be applied to functions.

> > I don't think the path you're trying to walk will be fruitful. The
> > problem is that any language written in plain text MUST do something
> > when terms are concatenated (because that's the only thing you can DO
> > with plain text);

> False. The following is not simply invalid C:
> "12 13"
> Notice the concatenation of terms!

I don't get it. That looks to me like invalid C. Why do you say it's
not invalid?

Anyhow, my point was that there must be SOME use of concatenation for
every text based language; but calling a language "concatenative" has
to mean that concatenation _always_ means something.

> > trying to call a language "concatenative" merely
> > because it "does something" *in some cases* when terms are
> > concatenated is so vague it describes ALL languages.

> That is not true. See: C, Java, C++, Pascal, Algol, etc. etc. etc.

Those are further examples of my point: languages in which
concatenation does something some times. The simple *presence* of
concatenation in the grammar isn't enough, any more than the simple
presence of functions is enough to make a language "functional".

> > A language that deserves the name "concatenative" should respond to
> > concatenation in the same way every time.

> Whatever response you require in your definition, be it application,
> composition, or some other operation, will be arbitrary: hence
> confusing.

But my point is that I don't require anything in my definition.
There's nothing arbitrary there. You can propose any operation you
want; but so far, the only one that's proven to work consistently and
"interestingly" is function composition.

Now, I admit that my definition lacks boundaries; nobody knows for
sure whether composition is the only possible operation. But in the
same sense my definition also lacks arbitrariness.

> - Christopher

-Wm
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.