[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: a pure side effect language
> Date: Thu, 3 Jul 2003 16:49:28 -0700
> From: James McCartney <asynth@io.com>
>
> I don't know if anyone here knows about the MAX application, which is
> used by musicians (there are other ports known as jMAX and PD). It is a
> boxes and wires style visual language where the boxes are objects and
> the wires represent message sends to the objects. The message sends are
> implemented as C function calls passing a list of tagged argument
> values.
>
> The interesting thing about this language is that is probably as far
> from functional as you can get. It is a pure side effect language. The
> function calls do not return a value. Therefore it can only do anything
> by mutating an object or causing i/o. There are no variables per se,
> but there are objects in which you can store a value by sending it a
> message, and get the stored value out by sending a message.
>
Of course, even pure functional languages can compute without returning
values if you use continuation-passing style (CPS). A standard compiler
trick for some languages is to convert regular function calls to CPS. You
also need tail call elimination for this to work.
Mike