New Arc Out(arclanguage.org)
arclanguage.org
New Arc Out
http://arclanguage.org/install
19 comments
Perhaps more interesting is that mzscheme changed a core language feature (mutable cons cells) without providing any backcompat.
Yeah, that was a pretty dramatic move. It means MzScheme is no longer an implementation of the Scheme standard.
The latest standard, R6RS, goes no further than grumbling about mutable pairs and raising the possibility of deprecating them in the future:
http://www.r6rs.org/final/html/r6rs-rationale/r6rs-rationale...
The latest standard, R6RS, goes no further than grumbling about mutable pairs and raising the possibility of deprecating them in the future:
http://www.r6rs.org/final/html/r6rs-rationale/r6rs-rationale...
To be fair, the base language of PLT never claimed to support any relevant standard. Instead implementations of standards are built as libraries on top of the base language. So PLT does provide both R5RS and R6RS, both with mutable pairs.
It is when you want to use PLT-specific non-RnRS libraries from RnRS code, you run into pair incompatibilities.
It is when you want to use PLT-specific non-RnRS libraries from RnRS code, you run into pair incompatibilities.
But before this change, I believe every PLT Scheme implementation was a superset of standard Scheme. (Which every Scheme implementation is.) Now it's actually incompatible.
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.
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...
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.
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.
http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf
http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf
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.
http://www.erlang.org/faq.html
http://www.erlang.org/faq.html
Might try it again - not that I didn't enjoy it, it was fun.
In case you decide to compile MzScheme 372 from sources on a Fedora 10 box that has SELinux in enforcing mode, you need to take a few (simple) additional steps:
http://aadnyavali.wordpress.com/2009/06/07/making-arc-3-play...
I'm still downloading Fedora 11, but suspect that the same exercise will be needed for that as well.
http://aadnyavali.wordpress.com/2009/06/07/making-arc-3-play...
I'm still downloading Fedora 11, but suspect that the same exercise will be needed for that as well.
I wonder whether Arc will end up in effect maintaining mutable-cons mzscheme. If this happens, I hope that Arc's focus won't shift to the implementation details.
I wonder if PG can tell us what the new changes are. I'm sure that there is a changelist, but I don't see it.
Actually, pg has said he hasn't kept track of the changes:
http://arclanguage.org/item?id=9399
Fortunately, someone else has taken the time to analyze the differences between arc2 and arc3:
http://arcfn.com/2009/06/whats-new-in-arc3.html
http://arclanguage.org/item?id=9399
Fortunately, someone else has taken the time to analyze the differences between arc2 and arc3:
http://arcfn.com/2009/06/whats-new-in-arc3.html