-----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] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@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----- _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe