Robert Virding robert.virding@REDACTED
Wed May 29 23:02:36 CEST 2002

> >And then we'll have to stop saying "Erlang is a single assignment
> >language" (since, technically, we're making multiple assignments to an
> >'invisible' variable.)
> I don't think that's the case at all.  The following two are equivalent:
> Value = a(b(c())).
> Value =
> c(),
> b(^)
> a(^).
> There's no assignment in the evaluation of the right hand side of the
> expression.  It's just that the "top of the stack," so to speak, is being
> carried along.  The preprocessor could convert the latter into the former
> without using intermediate variables.  In Forth this would be:
> c b a Value !
> which I have to admit is prettier.

There are a couple of problems here.  The first one someone has already
mentioned, that while Forth has an explicit stack Erlang (the language)
doesn't, it has variables. The second one is that I personally find that
I seldom have this type of code, it is usually something like:

f(A0, B0, C0) ->
    {A1,B1,C1} = a(A0, B0, C0),
    {A2,B2,C2} = b(A1, B1, C1),
    ... .

so an ^ would be of very little use.


More information about the erlang-questions mailing list