Re:New Arc Out
by Tichy on Friday June 12, 2009 @05:08AM
(#654383)
So is MzScheme effectively like Erlang now? I thought the immutable memory in Erlang does make some things difficult to code, which would have been a reason for me to prefer Scheme.
[ Parent
| on HN ]
Actually, mutable cons cells are in PLT, they're just created using mcons instead of cons, and accessed with mcar/mcdr. While this does make porting code a bit difficult, it's a very old change - Matthew's original blog post on the subject is dated from end-2007:
http://blog.plt-scheme.org/2007/11/getting-rid-of-set-car-an...
Not really. Only pairs are immutable now; vectors, strings, structures, hash tables and all the rest are still mutable. There's also separate mutable pairs. And mutable bindings, as always.
So no, far from Erlang in mutability.
I doubt you would find the immutable aspect in Erlang a problem in practice. I don't know MzScheme, but Erlang has a its own very different philosophy. I suggest Joe's thesis as an interesting read.
Well I found it a problem when I tried to program a Sieve Of Eratosthenes for project Euler. Also when I considered a grid based alife simulation. I guess the only way would be to use a process per cell?
Sometimes the mutable structures get passed around in the function arguments, so you might do a sequence of tail recursive calls and on each call you pass in the next board state to the same function. I would hope the Erlang Questions mailing list would help you if you posted a small example and explained your troubles to them. There are lots of very clever Erlang people there.