Re: functional IO in a SHA1 implementation
<[email protected]> Wed, 6 Feb 2019 22:04:43 +0000
| Newsgroups | gmane.comp.lang.ml.mlton.user |
|---|---|
| Message-ID | <[email protected]> |
SSBhbSB1c2luZyBpbnB1dE4sIGFuZCB0aGUgc3BlZWQgaXMgbm90IHNvIGJhZCwgYnV0IHRoZSBl eGNlc3NpdmUgbWVtb3J5IHVzYWdlIG11c3QganVzdCBiZSBiZWNhdXNlIHRoZSBkcml2ZXIgaXMg aW5kZWVkIGhvbGRpbmcgb250byB0aGF0IG9sZCB2YWx1ZSBvZiB0aGUgaW5wdXQgc3RyZWFtLCBh cyBNYXR0aGV3IGRpYWdub3NlZC4KCkkgd2lsbCBpbmRlZWQganVzdCBzaGVsbCBvdXQgdG8gc2hh c3VtIGFzIG15IGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgpNaWNoYWVsCgrvu79PbiA3LzIvMTks IDAxOjQ0LCAiSm9obiBSZXBweSIgPGpockBjcy51Y2hpY2Fnby5lZHU+IHdyb3RlOgoKICAgID4g RGF0ZTogV2VkLCA2IEZlYiAyMDE5IDAwOjM5OjA5ICswMDAwCiAgICA+IEZyb206IDxNaWNoYWVs Lk5vcnJpc2hAZGF0YTYxLmNzaXJvLmF1PgogICAgPiBUbzogPG1sdG9uLXVzZXJAbWx0b24ub3Jn PgogICAgPiBTdWJqZWN0OiBbTUx0b24tdXNlcl0gZnVuY3Rpb25hbCBJTyBpbiBhIFNIQTEgaW1w bGVtZW50YXRpb24KICAgID4gTWVzc2FnZS1JRDogPDg0MjU2NjcyLTJCNTQtNDY3RS04ODFFLTk4 ODgzMEE1MUI0QUBkYXRhNjEuY3Npcm8uYXU+CiAgICA+IENvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD0iVVRGLTgiCiAgICA+IAogICAgPiBUaGVyZSBtYXkgYmUgYmV0dGVyIGltcGxl bWVudGF0aW9ucyBvdXQgdGhlcmUsIGJ1dCBsb29raW5nIGZvciBhIFNIQTEgaW4gU01MLCBJIGZv dW5kCiAgICA+IAogICAgPiAgZ2l0QGdpdGh1Yi5jb206c3JkcXR5L3NtbC1zaGExLmdpdD8KICAg ID4gCiAgICA+IEl0IGNvbXBpbGVzIGFuZCBydW5zIGFuZCBnaXZlcyBjb3JyZWN0IGFuc3dlcnMg b24gYXQgbGVhc3QgdHdvIGlucHV0cyAoCiAgICA+IEl0IGFsc28gaGFzIGEgbmljZSBnZW5lcmlj IGludGVyZmFjZSB0aGF0IGFsbG93cyBmb3IgcmVhZGluZyBjaHVua3Mgb2YgZmlsZXMgYXQgYSB0 aW1lLCBldGMuIAogICAgPiAKICAgID4gSG93ZXZlciwgdGhlIGludGVyZmFjZSBpcyAKICAgID4g CiAgICA+ICAgIHR5cGUgJ2EgYnl0ZV9yZWFkZXIgPSAnYSAqIGludCAtPiBXb3JkOFZlY3Rvci52 ZWN0b3IgKiAnYQogICAgPiAgICB2YWwgc2hhMSA6ICdhIGJ5dGVfcmVhZGVyIC0+ICdhIC0+IFdv cmQ4VmVjdG9yLnZlY3RvcgogICAgPiAKICAgID4gYW5kIHRoZSByZWFsaXNhdGlvbiBvZiB0aGlz IGJ5dGVfcmVhZGVyIGluIHRoZSBzdXBwbGllZCBzaGExLWZpbGUgZXhhbXBsZSBpcyBCaW5JTy5T dHJlYW1JTy5pbnB1dE4uIAogICAgPiAKICAgID4gSXQgZG9lc24ndCBsb29rIGFzIGlmIHRoZSBz b3VyY2VzIGFyZSBob2xkaW5nIG9udG8gb2xkIHN0YXRlcywgYnV0LCB1bmZvcnR1bmF0ZWx5LCB3 aGVuIEkgcnVuIHNoYTEtZmlsZSBvbiBhIDEuMkdCIGZpbGUsIHRoZSBydW5uaW5nIHByb2Nlc3Mg dGFrZXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgYnVpbHQtaW4gc2hhc3VtIGFuZCBpdCBldmVudHVh bGx5IGNvbWVzIHRvIGNvbnN1bWUgYWJvdXQgMi41R0Igb2YgbWVtb3J5IChhcyBleWViYWxsZWQg aW4gT1NYJ3MgcHJvY2VzcyBtb25pdG9yIGFwcCkuIAogICAgPiAKICAgID4gSXMgdGhpcyBpbmV2 aXRhYmxlPyAgU2hvdWxkIEkgcmV3cml0ZSB0byBtYWtlIHRoZSBpbnRlcmZhY2UgaW1wbGljaXRs eSBzdGF0ZWZ1bCBieSBqdXN0IGhhdmluZyB0aGUgYnl0ZV9yZWFkZXIgdHlwZSBiZSAKICAgID4g CiAgICA+ICAgaW50IC0+IFdvcmQ4VmVjdG9yLnZlY3RvcgogICAgPiAKICAgID4gPwogICAgPiAK ICAgID4gTWljaGFlbCAKICAgIAogICAgVGhlIGltcGVyYXRpdmUgSS9PIChpLmUuLCBUZXh0SU8g JiBCaW5JTykgb3BlcmF0aW9ucyBhcmUganVzdCBsYXllcmVkIG9uIHRvcCBvZiB0aGUKICAgIGZ1 bmN0aW9uYWwgc3RyZWFtIG9wZXJhdGlvbnMsIHNvIHRoZSBmdW5jdGlvbmFsIGxheWVyIHNob3Vs ZCBiZSBzbGlnaHRseSBmYXN0ZXIuCiAgICBNb3JlIHNpZ25pZmljYW50IGlzIHRoZSBncmFudWxh cml0eSBvZiBJL08gb3BlcmF0aW9ucy4gIFRoZSBiZXN0IEkvTyBwZXJmb3JtYW5jZQogICAgd2ls bCBjb21lIGZyb20gZG9pbmcgSS9PIGluIGNodW5rcyAoZS5nLiwgdXNpbmcgdGhlIGlucHV0L2lu cHV0Ti9pbnB1dEFsbCBmdW5jdGlvbnMpLgogICAgSWYgdGhlIGJ5dGVfcmVhZGVyIHR5cGUgaXMg ZG9pbmcgaW5wdXQgYSBieXRlIGF0IGEgdGltZSAodXNpbmcgaW5wdXQxKSwgdGhlcmUgd2lsbAog ICAgYmUgYSBsb3QgbW9yZSBvdmVyaGVhZC4KICAgIAogICAgCS0gSm9obgogICAgCiAgICAKICAg IAogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICAg IE1MdG9uLXVzZXIgbWFpbGluZyBsaXN0CiAgICBNTHRvbi11c2VyQGxpc3RzLnNvdXJjZWZvcmdl Lm5ldDsgbWx0b24tdXNlckBtbHRvbi5vcmcKICAgIGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2Uu bmV0L2xpc3RzL2xpc3RpbmZvL21sdG9uLXVzZXIKICAgIAoKLS0gCllvdSByZWNlaXZlZCB0aGlz IG1lc3NhZ2UgYmVjYXVzZSB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIEdvb2dsZSBHcm91cHMg Ik1MdG9uLXVzZXIiIGdyb3VwLgpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAgYW5kIHN0 b3AgcmVjZWl2aW5nIGVtYWlscyBmcm9tIGl0LCBzZW5kIGFuIGVtYWlsIHRvIG1sdG9uLXVzZXIr dW5zdWJzY3JpYmVAbWx0b24ub3JnLgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpNTHRvbi11c2VyIG1haWxpbmcgbGlzdApNTHRvbi11c2VyQGxpc3Rz LnNvdXJjZWZvcmdlLm5ldDsgbWx0b24tdXNlckBtbHRvbi5vcmcKaHR0cHM6Ly9saXN0cy5zb3Vy Y2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbWx0b24tdXNlcgo=