L
> On 10 Feb 2024, at 13:30, Peter Bex <pe...@more-magic.net> wrote:
> 
> On Sat, Feb 10, 2024 at 12:24:36PM +0000, Pietro Cerutti wrote:
>> This is not how I reason about referential transparency. It is a property of 
>> functions applied to values, not variables.
>> The fact that you can define x to different values or even rebind it in the 
>> scope of a let binding doesn't make (lambda (x) (+ x 1)) less referentially 
>> transparent.
>> If you change the value of a slot of a vector, then the vector has a 
>> different value than before, even if the same name binds to the value.
> 
> This might be true in an abstract sense, but it isn't true for the
> CHICKEN type system.  The same vector (e.g. eq? returns #t) is always
> the same "value", for purposes of the type system.
> 
> It can have different values inside its slots, which is why we have
> to differentiate between pure and clean functions (see my other mail).

Oh, I've missed it! I thought it was just some mismatch on the naming in 
scrutinizer, I had not noticed the different semantics. Thanks!

-- 
Pietro Cerutti
I've pledged to give 10% of income to effective charities and invite you to 
join me.
https://givingwhatwecan.org

Sent from a small device - please excuse brevity and typos.

Reply via email to