From edd at debian.org  Wed Oct 17 04:36:21 2007
From: edd at debian.org (Dirk Eddelbuettel)
Date: Tue, 16 Oct 2007 21:36:21 -0500
Subject: [Rd] Fwd: Digest package - make digest generic?
In-Reply-To: <59d7961d0710161810r5e3c8f10o2155dffa47ee20ac@mail.gmail.com>
References: <f8e6ff050710150751r5d9add21sdb3ebccdb93ed085@mail.gmail.com>
	<59d7961d0710151300i1aed80adx448642f6161b3d29@mail.gmail.com>
	<f8e6ff050710151348x8888784lc6e5c5b5cf7e2bd@mail.gmail.com>
	<59d7961d0710151405w1b78c2bl81f08da87e62207e@mail.gmail.com>
	<66f3bd910710160524g3ef0f207h30f5f6bdf2880110@mail.gmail.com>
	<66f3bd910710160525o697104a8y90e9c8bf4c3255d1@mail.gmail.com>
	<18197.781.298239.228245@ron.nulle.part>
	<66f3bd910710161300w1857acd9gfdd038c389077dec@mail.gmail.com>
	<f8e6ff050710161322g69214d7dv9fa4672280404e9c@mail.gmail.com>
	<66f3bd910710161359t4a1580ecl9bc2ec1191560cd7@mail.gmail.com>
	<59d7961d0710161810r5e3c8f10o2155dffa47ee20ac@mail.gmail.com>
Message-ID: <18197.29989.476315.453783@ron.nulle.part>


On 16 October 2007 at 18:10, Henrik Bengtsson wrote:
| if there is a need for a digest0(), which there seems to be, we should
| have one, but we should find a better name.
|
| A better approach may be to keep digest() as is and introduce

Agreed.  It's better to keep the existing name and functionality.

| hashCode() for the feature Hadley requested, e.g.
| 
| hashCode <- function(...) UseMethod("hashCode");
| hashCode.default <- function(...) digest(...);
| 
| Personally, I think hashCode() is a more descriptive term of the
| value/outcome whereas digest() describes the action.  Of course, some
| of the arguments of digest() should be excluded from hashCode(), but
| the above gives you the idea.

Not sure I like the 'hashCode' name all that much.  How about some verbNoun
combination like 'createHash' ?
 
| That would make the distinction clear, and it is very much in line how
| Java is doing it (sorry Dylan folks).  I think the Java got a useful
| setup with its hashCode() & equals() methods.  If you want the
| details, here is one reference:
| 
|   http://www.geocities.com/technofundo/tech/java/equalhash.html
| 
| but the short story is that <quote>two objects that are "equal" must
| produce the same hash code as long as they are equal, however unequal
| objects need not produce distinct hash codes.</quote>.  The equals()
| relationship should be reflexive, symmetric, transitive, consistent.
| For details, see above URL.  These rules are very useful, but requires
| quite a bit of effort from the developer/maintainer in order to keep
| it up to date and valid.

Yes, I am not sure I can guarantee that.  We can always try, though.

Thanks for the follow-up!

Dirk

-- 
Three out of two people have difficulties with fractions.



[Rd] Fwd: Digest package - make digest generic?
Dirk Eddelbuettel