On this page:
immutable
mutable
immutable-authentic?
8.16.0.1

7 Immutable and Mutable Conversion🔗ℹ

 (require scramble/immutable) package: scramble-lib

procedure

(immutable v)  immutable-authentic?

  v : any/c
Returns a value like v that is shallowly immutable (see immutable?). The argument must be a vector, string, or other type of data with both mutable and immutable variants. (Mutable pairs are not considered a mutable variant of pairs.)

The result is immutable, and it is not an impersonator. If v is a suitable result, it is returned as the result; that is, the result of the function might not be a fresh value.

Note that if v is impersonated, this function can raise an exception due to accessing v.

procedure

(mutable v fresh?)  any/c

  v : any/c
  fresh? : boolean?
Like immutable, but returns a value that is shallowly mutable and not an impersonator.

If fresh? is true, then the result is a new value that does not share storage (shallowly) with v.

Note that if v is impersonated, this function can raise an exception due to accessing v.

procedure

(immutable-authentic? v)  boolean?

  v : any/c
Equivalent to (and (immutable? v) (not (impersonator? v))).