
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 7/2/10 20:51 , John Meacham wrote:
On Fri, Jul 02, 2010 at 08:48:07PM -0400, Brandon S Allbery KF8NH wrote:
On 7/2/10 17:24 , Gregory Crosswhite wrote:
The problem with this approach is that the hash context isn't a monoid; you can absorb data into the context, but you can't combine two hash contexts to form a new one. Thus, the Writer monad won't work for this purpose.
No? The context is simply a String, which is a monoid, and you can combine contexts quite meaningfully before you actually compute the final hash (in fact, that's the whole point!).
The context isn't a string. it is an intermediate state in the algorithm of the hash function. it is usually an opaque binary blob (represented by a ByteString) of a size that is on the order of the final hash (unrelated to the size of the input).
If you read the example code I posted, the point was how to turn the current monolithic hash function into a cumulative one by using Writer. As such, there's no opaque hash state inside the Writer. (see `hash . runWriter'). - -- brandon s. allbery [linux,solaris,freebsd,perl] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkwujqcACgkQIn7hlCsL25W6UQCfXrwrxclyns5s6TODstkO4z0a 1DwAoLLHJpZ36iEGiydkFy+0GTQWFbFI =bTrg -----END PGP SIGNATURE-----