Re: Continuation marks and SRFI 198
Marc Nieper-WiÃkirchen 16 Aug 2020 12:51 UTC
Am So., 16. Aug. 2020 um 13:30 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>:
> > I understand that only a few Schemes support continuation marks yet,
> > but whatever solution will finally be proposed to SRFI 198, there
> > should be an upgrade path to the use of continuation marks, which is
> > "the right way".
>
> That sounds great.
>
> SRFI 198 and 170 need to be usable even on tiny Schemes, so 198 must be
> able to provide all the usual features without continuation marks. Even
> it seems wise to make retrieving the Scheme procedure name optional, it
> would be nice to store it in a way that works even without continuation
> marks, simply by the implementation manually storing a symbol in the object.
>
> However, tying 198 seamlessly into a continuation marks system would
> definitely be the right thing. Marc, can you suggest us an API for that?
> I for one won't be able to learn the topic fast enough.
One could perceive a higher-level API that allows a poor man's
implementations for systems not (yet) having continuation marks:
(call/who WHO PROC ARGS ...) and (apply/who WHO PROC ARGS ...)
would call (apply) the procedure PROC with the args ARGS ... In the
dynamic extent of the call, (who) would return WHO (and we would have
similar getters for PROC and ARGS ...). This can be emulated with
"parameterize".
We can even have shortcut macros (call/ PROC ARGS) and (apply/ PROC
ARGS) that expand into (call/who 'PROC PROC ARGS ...) and (apply/who
'PROC PROC ARGS ...)