Tue Jun 4 09:55:55 CEST 2002
On Mon, Jun 03, 2002 at 11:59:32PM +0100, C.Reinke wrote:
> Why not permit unbound variables in function calls, and only outlaw
> them in inter-thread communications? I looked at logic vs functional
> languages a while ago, and most of the examples where logic
> languages won where down to this late, but still single-assignment
> use of variables. And its a lot easier (almost trivial?) to
> implement within thread-boundaries.
I remember the wild days when we were adding stuff to the languange
in a complete ad-hoc manner. The process worked a bit along the lines:
1. Somebody implements a funky feature and just adds it to the language.
a) More than one other person says: this is a good feature - it stays.
b) no feed back at all - the feature goes
For example I remember I had an implementation of process migration
from one node to another that nobody cared about, so I removed it.
Anyway, here's my reply to your suggestion above. When we were
discussing and implementing different features, there was always
one limiting factor, and that was that a feature shouldn't rely on whether
we were having a shared heap implementation or an implementation
with private heaps per process.
Having logical (unbound) variables in everything but message passing
is just such a feature. If we're to ban unbound vars in messages, we
must scan the message before sending it. This is bad if we're having
a unified heap.
Claes Wikstrom -- Caps lock is nowhere and
Alteon WebSystems -- everything is under control
cellphone: +46 70 2097763
More information about the erlang-questions