Problems in the specs for 'gdelete' and 'gindex' Mark H Weaver (21 Jul 2019 01:48 UTC)
|
Re: Problems in the specs for 'gdelete' and 'gindex'
Mark H Weaver
(21 Jul 2019 09:26 UTC)
|
Re: Problems in the specs for 'gdelete' and 'gindex'
Arthur A. Gleckler
(02 Mar 2020 23:10 UTC)
|
Re: Problems in the specs for 'gdelete' and 'gindex'
John Cowan
(02 Mar 2020 23:11 UTC)
|
Problems in the specs for 'gdelete' and 'gindex' Mark H Weaver 21 Jul 2019 01:46 UTC
Hi, While working on an implementation of SRFI-121, I found three problems in in the text. SRFI-121 has since been withdrawn, but the same issues are also present in SRFI-158: (1) The spec for 'gdelete' states: The = predicate is passed exactly two arguments, of which the first was generated by gen before the second. However, in the case of 'gdelete', '=' will never be applied to two arguments generated by GEN. Instead, '=' will be used to compare ITEM (an argument to 'gdelete') with each element generated by GEN. This leaves me unsure of whether to call (= ITEM PRODUCED-ELEMENT) or (= PRODUCED-ELEMENT ITEM), and yet the text seems to suggest that the order might be important. What would you suggest? (2) In the spec for 'gindex', I believe that this text: It is an error if the indices are not strictly increasing, or if any index exceeds the number of elements generated by value-gen. should be changed to something equivalent to: It is an error if the indices are not strictly increasing, or if any index exceeds or equals the number of elements generated by value-gen. In other words, each index should be in the range 0..N-1, where N is the number of elements generated by VALUE-GEN. Is that right? (3) The spec for 'gindex' makes apparently conflicting assertions about what should happen if 'value-gen' is exhausted before 'index-gen' is exhausted. First, it states: It is an error if the indices are not strictly increasing, or if any index exceeds the number of elements generated by value-gen. It then goes on to state: The result generator is exhausted when either generator is exhausted I think there's a condradiction here. If 'value-gen' is exhausted first, that would seem to imply that there was an index that that exceeds the number of elements generated by value-gen. If you disagree, can you please give an example where the following rule is applicable: It is an error [...] if any index exceeds the number of elements generated by value-gen. and where the other error conditions are not applicable? Regards, Mark