Introspection Wolfgang Corcoran-Mathe (10 May 2020 23:41 UTC) Re: Introspection Marc Nieper-Wißkirchen (11 May 2020 07:11 UTC) Multiple-values SRFI Lassi Kortela (11 May 2020 09:09 UTC) Re: Multiple-values SRFI Marc Nieper-Wißkirchen (11 May 2020 09:41 UTC) Re: Multiple-values SRFI Lassi Kortela (11 May 2020 10:52 UTC) Re: Multiple-values SRFI Lassi Kortela (11 May 2020 11:04 UTC) Re: Introspection John Cowan (11 May 2020 18:02 UTC) Re: Introspection Marc Nieper-Wißkirchen (11 May 2020 18:26 UTC) Re: Introspection Marc Feeley (11 May 2020 18:34 UTC) Re: Introspection Marc Nieper-Wißkirchen (11 May 2020 19:29 UTC) Re: Introspection Marc Feeley (12 May 2020 04:15 UTC) Re: Introspection John Cowan (12 May 2020 15:36 UTC) Re: Introspection Lassi Kortela (12 May 2020 16:07 UTC) Re: Introspection John Cowan (12 May 2020 18:19 UTC) Re: Introspection Lassi Kortela (12 May 2020 18:46 UTC) Re: Introspection Marc Nieper-Wißkirchen (04 Jun 2020 16:39 UTC) Re: Introspection Marc Nieper-Wißkirchen (09 Jun 2020 08:38 UTC) Re: Introspection John Cowan (09 Jun 2020 17:53 UTC) Re: Introspection Marc Nieper-Wißkirchen (09 Jun 2020 19:39 UTC) Re: Introspection John Cowan (10 Jun 2020 21:46 UTC) Re: Introspection Marc Nieper-Wißkirchen (11 Jun 2020 11:55 UTC) Re: Introspection Marc Nieper-Wißkirchen (04 Jun 2020 16:36 UTC)

Introspection Wolfgang Corcoran-Mathe 10 May 2020 23:41 UTC

```Re: Marc's response on the "Asking Introspection" thread:

> There is a second way, however, which can also be applied in other
> situations where multiple values occur. What I am thinking of are
> special forms not restricted to boxes (but could be applied to, say,
> the Justs and Rights of SRFI 189 likewise) as follows:
>
> (values->vector <expr>)
> (values-length <expr>)
> (values->list <expr>)
> (values-ref <expr> <index>)
>
> These are expressions defined as syntax (important because Scheme's
> applicative syntax doesn't allow multiple values). When they are
> evaluated, <expr> is evaluated and expected to return values, which
> are then converted to a vector, a list, etc. Moreover, as this is
> syntax, an implementation can expand these forms into the most
> efficient ones.

I really like these forms as a solution to the multiple-value
container introspection issue (which has also appeared with SRFI
189), and as a convenient interface to multiple values, in general.