Am Do., 29. Aug. 2024 um 08:49 Uhr schrieb Michael Sperber <xxxxxx@active-group.de>:

On Wed, Aug 28 2024, "Will Clinger" <xxxxxx@larcenists.org> wrote:

> You appear to be assuming there is some objective "actual meaning
> of x|p".  In my opinion, the purpose and specification of that notation
> has never been defined so well as to create an objectively actual
> meaning.

To provide some historical context, the notation's immediate ancestor is
this paper:

https://www.deinprogramm.de/sperber/papers/numerical-towe of the r.pdf

See section 6.6 "External Representations".

The paper proposes a greater revision of the numerical tower in light of
its inconsistencies and practical problems.  In that context, 0.7|52
denotes an exact (and thus well-specified) number.  Within the greater
debate, some minor suggestions from that paper were adopted for R6RS -
such as the mantissa-width tagged format - but (sadly IMHO) the greater
proposal was not, leading to the imprecisions in the R6RS wording.

Thank you for pointing out that paper and clarifying the origin of the x|p notation.  The difference to R6RS in this context seems to be that what is 0.7|52 in the paper is #e0.7|52 in R6RS mainly because of R6RS's rules for inexact number literals (and because of dropping the R5RS distinction of exactness/inexactness in the paper).

In the context of the paper, the meaning of the R6RS text becomes even clearer, IMHO, although we all agree that it is not optimally clear.

I would like to add that the R6RS text actually gives an example that should make the meaning clear: "For example, 1.1|53 is a representation of the best approximation of 1.1 in IEEE double precision."  Notably, this is consistent with what the paper proposes.  Independently, it clarifies that the meaning of 1.1|53 as a number (not a number object!) is independent of any machine representation.  The other paragraphs describe the relationship of the number object with this number, which it has to represent.