5.3.3
19 Mark Parameters
This library is unstable;
compatibility will not be maintained.
See Unstable: May Change Without Warning for more information.
(require unstable/markparam) |
This library provides a simplified version of parameters that are backed by continuation marks, rather than parameterizations. This means they are slightly slower, are not inherited by child threads, do not have initial values, and cannot be imperatively mutated.
struct
(struct mark-parameter ())
The struct for mark parameters. It is guaranteed to be serializable and transparent. If used as a procedure, it calls mark-parameter-first on itself.
procedure
(mark-parameter-first mp [tag]) → any/c
mp : mark-parameter?
tag : continuation-prompt-tag? = default-continuation-prompt-tag
Returns the first value of mp up to tag.
procedure
(mark-parameter-all mp [tag]) → list?
mp : mark-parameter?
tag : continuation-prompt-tag? = default-continuation-prompt-tag
Returns the values of mp up to tag.
procedure
(mark-parameters-all mps none-v [tag]) → (listof vector?)
mps : (listof mark-parameter?) none-v : [any/c #f]
tag : continuation-prompt-tag? = default-continuation-prompt-tag
Returns the values of the mps up to tag. The length
of each vector in the result list is the same as the length of
mps, and a value in a particular vector position is the value
for the corresponding mark parameter in mps. Values for
multiple mark parameter appear in a single vector only when the mark
parameters are for the same continuation frame in the current
continuation. The none-v argument is used for vector elements
to indicate the lack of a value.
syntax
(mark-parameterize ([mp expr] ...) body-expr ...)