On 6 March 2014 14:37, "Jörg F. Wittenberger" < [email protected]> wrote:
> Am 06.03.2014 09:05, schrieb Daniel Carrera: > >> I have recently learned about set-car! and set-cdr! which eventually led >> me to learn about how Racket removed them years ago for the reasons given >> in this post: >> >> http://blog.racket-lang.org/2007/11/getting-rid-of-set- >> car-and-set-cdr.html >> >> >> On the other hand, Chicken certainly has set-car! and set-cdr! and I also >> see these functions in R7RS. I was wondering if there is a balancing >> opinion (maybe a post somewhere) on this matter. >> > > Frankly I find the above posting pretty balanced. Most people agree that > pure functional code is easier to judge and get right than code having > mutation. > > Presumably these functions exist because someone thought they were a good >> idea. >> > > Still there is the history. Hence Scheme has mutation. > > Maybe this could be addressed by splitting the "scheme" module of chicken > into a "scheme-pure" for the sake of safety, "scheme-mutations" having the > rest and make "scheme" importing and reexporting both sets of bindings. > Yeah. I have to admit that I found the argument in the post persuasive. Racket's promise of safety is enticing. But I wondered if there was a reason why the rest of the Scheme world hasn't rushed to adopt this seemingly great idea. I suppose that it could be a matter of history, as you suggest. Cheers, Daniel. -- When an engineer says that something can't be done, it's a code phrase that means it's not fun to do.
_______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
