Re: seeds taylanbayirli@xxxxxx 15 Oct 2015 23:08 UTC

John Cowan <xxxxxx@mercury.ccil.org> writes:

> Taylan Ulrich Bayırlı/Kammer scripsit:
>
>> I want to prioritize the normal use-cases and the currently existing
>> Scheme implementations.  If we can support relatively obscure use-cases
>> as well, without disrupting normal use-cases, and without disrupting
>> compatibility with existing implementations, that's a nice bonus.
>
> Scheme is unique in that it has always accepted custom hash functions.
> CL does not, Python does not, Perl does not, JS does not.  I think this
> is not only an important feature to preserve, but it is important to
> allow existing custom hash functions to continue to work, if not most
> securely.

Sure, I'm not removing that functionality.  I could say I see custom
hash functions like the one in my "student identity" example to be a
"normal" use-case.  (In some other languages one achieves a similar
effect by implementing a hash method in a class conforming to a hashing
interface.  At least in Objective-C that's the idiomatic way to do it,
and I use that regularly in boring, occupationally written code.  I
suspect it's similar in Java and maybe also Python, possibly CL too if
CL's 'equal-hash' function is a generic.)

I just don't see much of an improvement in changing hash function
signatures to something entirely novel, when '(obj, [bound]) -> int'
works perfectly fine and is familiar for programmers and more compatible
with existing implementations.

Taylan