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

Reply via email to