Am Fr., 9. Sept. 2022 um 23:13 Uhr schrieb John Cowan <[email protected]>:
>
>
>
> On Fri, Sep 9, 2022 at 4:22 PM Marc Nieper-Wißkirchen <[email protected]> 
> wrote:
>
>>
>> No, if `procedure/tag?` returns `#t`, the procedure `procedure-tag` must not 
>> crash.
>
>
> But it says "It is an error if proc is not a tagged procedure".  So "it is an 
> error" means the behavior is undefined (which may include crashing), per 
> R[57]RS; in R6RS the term "it is an error" is not defined.

Yes, so `procedure/tag?` must only return `#t` on tagged procedures.
My initial comment that it can return `#t` on all procedures was in
the context of your Chicken implementation where all procedures are
tagged (possibly with some unspecified value).  On the other hand, for
other implementations where tagged procedures form a strict subset of
non-tagged procedures, `procedure/tag?` must reflect this.

(In R6RS, an assertion violation would be raised per section 5.4 of the report.)

Reply via email to