Chicken implementation
John Cowan
(08 Sep 2022 23:51 UTC)
|
Re: Chicken implementation
Arthur A. Gleckler
(08 Sep 2022 23:59 UTC)
|
Re: Chicken implementation
Marc Nieper-Wißkirchen
(09 Sep 2022 06:24 UTC)
|
Re: Chicken implementation
Arthur A. Gleckler
(09 Sep 2022 18:53 UTC)
|
Re: Chicken implementation
John Cowan
(09 Sep 2022 20:15 UTC)
|
Re: Chicken implementation
Marc Nieper-Wißkirchen
(09 Sep 2022 20:22 UTC)
|
Re: Chicken implementation
John Cowan
(09 Sep 2022 21:13 UTC)
|
Re: Chicken implementation Marc Nieper-Wißkirchen (10 Sep 2022 07:30 UTC)
|
Re: Chicken implementation
John Cowan
(10 Sep 2022 10:36 UTC)
|
Re: Chicken implementation
Marc Nieper-Wißkirchen
(10 Sep 2022 11:12 UTC)
|
Re: Chicken implementation
Arthur A. Gleckler
(10 Sep 2022 21:46 UTC)
|
Am Fr., 9. Sept. 2022 um 23:13 Uhr schrieb John Cowan <xxxxxx@ccil.org>: > > > > On Fri, Sep 9, 2022 at 4:22 PM Marc Nieper-Wißkirchen <xxxxxx@gmail.com> 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.)