[ruby-core:122866] [Ruby Feature#21518] Statistical helpers to `Enumerable`
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2025-07-25 20:08:57 UTC
List:
ruby-core #122866
SXNzdWUgIzIxNTE4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFtZSAoWXVzdWtlIEVuZG9oKS4NCg0K DQpOYXR1cmFsbHksIHRoZXNlIG1ldGhvZHMgaGF2ZSBiZWVuIGRlc2lyZWQgYnkgc29tZSBwZW9w bGUgZm9yIGEgdmVyeSBsb25nIHRpbWUsIGJ1dCBSdWJ5IGhhcyBoaXN0b3JpY2FsbHkgYmVlbiB2 ZXJ5IGNhdXRpb3VzIGFib3V0IGludHJvZHVjaW5nIHRoZW0uIEV2ZW4gdGhlIG9idmlvdXNseSB1 c2VmdWwgYCNzdW1gIG1ldGhvZCB3YXMgb25seSBhZGRlZCBpbiAyMDE2LCB3aGljaCBpcyByZWxh dGl2ZWx5IHJlY2VudCBpbiBSdWJ5J3MgaGlzdG9yeS4NCg0KT25lIHJlYXNvbiBiZWhpbmQgdGhp cyBjYXV0aW9uIGlzIHRoZSByZWx1Y3RhbmNlIHRvIGFkZCBtZXRob2RzIHRvIEFycmF5IHRoYXQg YXNzdW1lIGFsbCBlbGVtZW50cyBhcmUgSW50ZWdlciBvciBGbG9hdC4gU2luY2UgQXJyYXkgY2Fu IGNvbnRhaW4gU3RyaW5ncyBvciBvdGhlciBub24tbnVtZXJpYyBvYmplY3RzLCB0aGVyZSdzIGEg cXVlc3Rpb24gb2Ygd2hldGhlciBpdCBpcyBhcHByb3ByaWF0ZSB0byBhZGQgbWV0aG9kcyB0aGF0 IG1ha2Ugbm8gc2Vuc2UgaW4gc3VjaCBjYXNlcy4NCg0KVGhlIHJlYXNvbiB3aHkgYCNzdW1gIHdh cyBldmVudHVhbGx5IGFkZGVkIHdhcyB0aGUgZ3Jvd2luZyBhdHRlbnRpb24gdG8gYW4gYWxnb3Jp dGhtIGNhbGxlZCB0aGUgS2FoYW4tQmFidXNrYSBTdW1tYXRpb24gQWxnb3JpdGhtLiBUaGlzIGlz IGEgY2xldmVyIGFsZ29yaXRobSB0aGF0IHJlZHVjZXMgZmxvYXRpbmctcG9pbnQgZXJyb3Igd2hl biBzdW1taW5nLCBhbmQgaXQgaXMgYWN0dWFsbHkgaW1wbGVtZW50ZWQgaW4gYEFycmF5I3N1bWAu IEJlZm9yZSB0aGlzIGFsZ29yaXRobSBnYWluZWQgYXR0ZW50aW9uLCBJIHJlbWVtYmVyIHRoZSBw cmV2YWlsaW5nIG9waW5pb24gd2FzIHRoYXQgaXQgc2hvdWxkIGJlIHdyaXR0ZW4gZXhwbGljaXRs eSwgbGlrZSBgYXJ5LmluamVjdCgwLCAmOispYC4NCg0KRm9yIG5vdywgeW91IG1heSB3YW50IHRv IHRyeSB1c2luZyBodHRwczovL2dpdGh1Yi5jb20vcmVkLWRhdGEtdG9vbHMvZW51bWVyYWJsZS1z dGF0aXN0aWNzIHRvIGdldCBhIGJldHRlciBpZGVhIG9mIHdoYXQgeW91IGFjdHVhbGx5IG5lZWQu DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIx NTE4OiBTdGF0aXN0aWNhbCBoZWxwZXJzIHRvIGBFbnVtZXJhYmxlYA0KaHR0cHM6Ly9idWdzLnJ1 YnktbGFuZy5vcmcvaXNzdWVzLzIxNTE4I2NoYW5nZS0xMTQxNjcNCg0KKiBBdXRob3I6IEFtaXRs ZXNoZWQgKEFtaXQgTGVzaGVkKQ0KKiBTdGF0dXM6IE9wZW4NCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCioqU3VtbWFyeSoqDQoNCkknZCBsaWtlIHRvIGFkZCB0d28g c3RhdGlzdGljYWwgaGVscGVycyB0byBgRW51bWVyYWJsZWA6DQoNCi0gYEVudW1lcmFibGUjYXZl cmFnZWAgKGFyaXRobWV0aWMgbWVhbikNCi0gYEVudW1lcmFibGUjbWVkaWFuYA0KDQpCb3RoIGFy ZSBzbWFsbCwgd2VsbC1kZWZpbmVkIG9wZXJhdGlvbnMgdGhhdCBtYW55IFJ1Ynlpc3RzIHJlLWlt cGxlbWVudCBpbiBhcHBzIGFuZCBnZW1zLiBQcm92aWRpbmcgdGhlbSBpbiBjb3JlIGF2b2lkcyBy ZXBlYXRlZCwgYWQtaG9jIGNvZGUgYW5kIGFsaWducyB3aXRoIGBFbnVtZXJhYmxlI3N1bWAsIHdo aWNoIFJ1YnkgYWxyZWFkeSBzaGlwcy4NCg0KDQoqKk1vdGl2YXRpb24qKg0KDQotIFRoZXNlIGFy ZSBhbW9uZyB0aGUgbW9zdCBjb21tb24g4oCccm9sbC15b3VyLW93buKAnSBoZWxwZXJzIGZvciBh cnJheXMvcmFuZ2VzIG9mIG51bWJlcnMuDQotIFRoZXkgYXJlIGNvbmNlcHR1YWxseSBzaW1wbGUs IHVuaXZlcnNhbGx5IHVzZWZ1bCBiZXlvbmQgd2ViL1JhaWxzLg0KLSBTaW1pbGFyIHRvIGBzdW1g LCB0aGV54oCZcmUgcHJpbWl0aXZlcyBmb3IgcXVpY2sgZGF0YSBhbmFseXNpcywgRVRMIHNjcmlw dHMsIENMSSB0b29saW5nLCBldGMuDQotIEluY2x1ZGluZyB0aGVtIGVuY291cmFnZXMgY29uc2lz dGVudCBzZW1hbnRpY3MgKHdoYXQgdG8gZG8gd2l0aCBlbXB0eSBzZXRzLCBtaXhlZCBudW1lcmlj cywgZXRjLikuDQoNCg0KIyMgUHJvcG9zZWQgQVBJICYgU2VtYW50aWNzDQoNCmBgYHJ1YnkNCkVu dW1lcmFibGUjYXZlcmFnZSAtPiBGbG9hdCBvciBuaWwNCkVudW1lcmFibGUjbWVkaWFuICAtPiBO dW1lcmljIG9yIG5pbA0KYGBgDQoNCmBgYHJ1YnkNClsxLCAyLCAzLCA0XS5hdmVyYWdlICAgICAg IyA9PiAyLjUNCigxLi40KS5hdmVyYWdlICAgICAgICAgICAgIyA9PiAyLjUNCltdLmF2ZXJhZ2Ug ICAgICAgICAgICAgICAgIyA9PiBuaWwNCg0KWzEsIDMsIDJdLm1lZGlhbiAgICAgICAgICAjID0+ IDINClsxLCAyLCAzLCAxMF0ubWVkaWFuICAgICAgIyA9PiAyLjUNCigxLi42KS5tZWRpYW4gICAg ICAgICAgICAgIyA9PiAzLjUNCltdLm1lZGlhbiAgICAgICAgICAgICAgICAgIyA9PiBuaWwNCmBg YA0KDQpSdWJ5IGltcGxlbWVudGF0aW9uIA0KDQpgYGBydWJ5DQptb2R1bGUgRW51bWVyYWJsZQ0K ICBkZWYgYXZlcmFnZQ0KICAgIGNvdW50ID0gMA0KICAgIHRvdGFsID0gMC4wDQogICAgZWFjaCBk byB8eHwNCiAgICAgIHJhaXNlIFR5cGVFcnJvciwgIm5vbi1udW1lcmljIHZhbHVlIGZvciBhdmVy YWdlIiB1bmxlc3MgeC5pc19hPyhOdW1lcmljKQ0KICAgICAgdG90YWwgKz0geA0KICAgICAgY291 bnQgKz0gMQ0KICAgIGVuZA0KICAgIGNvdW50Lnplcm8/ID8gbmlsIDogdG90YWwgLyBjb3VudA0K ICBlbmQNCg0KICBkZWYgbWVkaWFuDQogICAgYXJyID0gdG9fYQ0KICAgIHJldHVybiBuaWwgaWYg YXJyLmVtcHR5Pw0KICAgIGFyci5lYWNoIHsgfHh8IHJhaXNlIFR5cGVFcnJvciwgIm5vbi1udW1l cmljIHZhbHVlIGZvciBtZWRpYW4iIHVubGVzcyB4LmlzX2E/KE51bWVyaWMpIH0NCiAgICBhcnIu c29ydCENCiAgICBtaWQgPSBhcnIubGVuZ3RoIC8gMg0KICAgIGFyci5sZW5ndGgub2RkPyA/IGFy clttaWRdIDogKGFyclttaWQgLSAxXSArIGFyclttaWRdKSAvIDIuMA0KICBlbmQNCmVuZA0KYGBg DQoNCioqVXBvbiBhcHByb3ZhbCBJJ20gbW9yZSB0aGFuIHdpbGxpbmcgdG8gaW1wbGVtZW50IHNw ZWMgYW5kIGNvZGUgaW4gQy4qKg0KDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnLw0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVi eS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5z dWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9y ZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xp c3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLwo=