# Overview of Joy (was Concatenative Languages: a New Mailing List)

## peter_easthope@gulfnet.pinc.com — 2000-05-08 19:10:09

    "iepos" (Brent Kerby) said,

    bk> I'm guessing they mean that there is no _dynamic_ environment

    of name-value pairs.

    Thanks Brent.

    A little further on in the overview is this example.

    square == dup +

    Isn't this the dynamical creation and naming of a function

    to square a number.

    Another question: Joy says it uses postfix notation.  Why is the

    above definition not this way.

    dup + square ==

    Thanks,        Peter E.

    peter_easthope@...   48.7689d N, 123.3017d W, 30 m

    Recommended reading:  http://www.naturalstep.org/

## srenner@mail.ru — 2000-05-08 20:18:03

    --- In concatenative@egroups.com, peter_easthope@g... wrote:

     >

    > A little further on in the overview is this example.

    >

    > square == dup +

    >

    > Isn't this the dynamical creation and naming of a function

    > to square a number.

    > Another question: Joy says it uses postfix notation.  Why is the

    > above definition not this way.

    >

    > dup + square ==

     My understanding is that "==" is part of the metalanguage. It could

    also be a dynamic operator, part of the language, that changes the

    language. In that case the language would include the metalanguage,

    which is called reflection. In a previous post I discussed

    implementing "==" ("def") not with a dictionary to map keys (strings)

    to values (box chains) but by writing a procedure in the host language

    and recompiling the interpreter. Perhaps definitions would appear

    before the body of the program. If they appeared in it, the

    interpreter state could be saved and reborn in the new interpreter

    after the compile. If you look at how M. von Thun uses it you will see

    that "==" is metalinguistic.

    sr