[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] Formal Comment: R7RS 'eqv?' cannot be used for reliable memoization

Hi Per,

Per Bothner <per@x> writes:
> Saying "Therefore, it appears likely that I will not be able
> to use R7RS" simply comes across as petulant.  Just use the
> parts of R7RS you like, and modify/ignore the rest, without
> whining about it.  There is no R7RS police to arrest you
> if you deviate in places you think R7RS gets wrong (or
> for other reason you need to deviate) - as I (and I am
> sure other implementors) will do.

Thanks for letting me know how my messages are perceived.
I respect your opinion.

I should have been more clear that when I wrote "I will not be able to
use R7RS", I was speaking as a _user_ and not as an implementor.

As an implementor, you are quite right that I can easily correct the
flaws in the standard, so there is no serious problem from that
perspective.  However, as a _user_ who wishes to write portable Scheme
programs, and who takes pride in writing programs that work reliably,
the situation is quite different.

For the sake of my reputation, I'd like to ensure that if my program
produces the wrong answer on implementation FOO, I can pass the buck and
say "that's because FOO didn't properly implement the standard."

As it stands now, there's no way for me to publish a program involving
memoization that purports to be "portable R7RS" without the risk that it
will produce the wrong answer on a perfectly-conformant implementation
of R7RS, and that I'll be left holding the bag with a bug that I simply
cannot fix.

Simply put, R7RS provides *no* way to correctly implement memoization.
Therefore, I would be foolish to choose it for any program that might
conceivably need memoization in the future.

Does that make sense?


Scheme-reports mailing list