Weaken disjointness of range type? Marc Nieper-Wißkirchen (01 Sep 2020 11:25 UTC)
Re: Weaken disjointness of range type? John Cowan (01 Sep 2020 18:19 UTC)
Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen (01 Sep 2020 19:45 UTC)
Re: Weaken disjointness of range type? Wolfgang Corcoran-Mathe (04 Sep 2020 23:15 UTC)
Re: Weaken disjointness of range type? John Cowan (05 Sep 2020 03:03 UTC)
Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen (05 Sep 2020 10:15 UTC)
Re: Weaken disjointness of range type? Wolfgang Corcoran-Mathe (05 Sep 2020 19:27 UTC)
Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen (06 Sep 2020 07:25 UTC)
Re: Weaken disjointness of range type? John Cowan (05 Sep 2020 23:35 UTC)
Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen (06 Sep 2020 07:36 UTC)
Re: Weaken disjointness of range type? John Cowan (07 Sep 2020 01:09 UTC)
Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen (07 Sep 2020 06:18 UTC)
Re: Weaken disjointness of range type? John Cowan (08 Sep 2020 15:40 UTC)
Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen (08 Sep 2020 15:58 UTC)
Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen (05 Sep 2020 09:49 UTC)

Re: Weaken disjointness of range type? Marc Nieper-Wißkirchen 08 Sep 2020 15:58 UTC

Am Di., 8. Sept. 2020 um 17:40 Uhr schrieb John Cowan <xxxxxx@ccil.org>:

> Ranges would be mutable if:
>
> 1) they might be the same type as some mutable type (in which case they could potentially, though not portably, be mutated using the procedures of that type), or
>
> 2) actual mutation procedures such as range-set! or range-map! were provided.
>
> But since neither of these things are true, ranges are immutable (as I keep saying) by construction.  And indeed, the only place they are called immutable is in the abstract, which is non-normative.
>
> (Again, frame-breaking operations like record and procedure inspection may allow direct mutation of a range.)

I think we agree 99%. The remaining 1% is that I don't make a
difference between 1) and 2). For me providing a (non-portable)
extended set of procedures (like range-set!) would be effectively the
same as extending (non-portably) existing procedures (like extending
vector-set! to ranges under the assumption that ranges may not
distinguishable from vector literals).

:)