[ruby-core:122709] [Ruby Feature#21386] Introduce `Enumerable#join_map`
From:
"matz (Yukihiro Matsumoto) via ruby-core" <ruby-core@...>
Date:
2025-07-10 08:38:54 UTC
List:
ruby-core #122709
SXNzdWUgIzIxMzg2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4NCg0KU3RhdHVzIGNoYW5nZWQgZnJvbSBPcGVuIHRvIFJlamVjdGVkDQoNCkkgcmVqZWN0IHRo aXMgcHJvcG9zYWwuIFNpbXBseSBjb21iaW5lIGpvaW4gYW5kIG1hcCBhdCB0aGUgbW9tZW50Lg0K SSBob3BlIEpJVCBpbmxpbmluZyB3aWxsIHJlbW92ZSBpbnRlcm1lZGlhdGUgb2JqZWN0cyBpbiB0 aGUgZnV0dXJlLg0KDQpNYXR6Lg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCkZlYXR1cmUgIzIxMzg2OiBJbnRyb2R1Y2UgYEVudW1lcmFibGUjam9pbl9tYXBg DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjEzODYjY2hhbmdlLTExMzk4Ng0K DQoqIEF1dGhvcjogbWF0aGV1c3JpY2ggKE1hdGhldXMgUmljaGFyZCkNCiogU3RhdHVzOiBSZWpl Y3RlZA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyMjIFByb2Js ZW0NCg0KVGhlIHBhdHRlcm4gYC5tYXAgeyAuLi4gfS5qb2luKHNlcClgIGlzIGV4dHJlbWVseSBj b21tb24gaW4gUnVieSBjb2RlYmFzZXM6DQoNCmBgYHJ1YnkNCnVzZXJzLm1hcCgmOm5hbWUpLmpv aW4oIiwgIikNCmBgYA0KDQpJdOKAmXMgZXhwcmVzc2l2ZSBidXQgcmVwZXRpdGl2ZSAoYm90aCBs b2dpY2FsbHkgYW5kIGNvbXB1dGF0aW9uYWxseSkuIFRoaXMgcGF0dGVybiBhbGxvY2F0ZXMgYW4g aW50ZXJtZWRpYXRlIGFycmF5IGFuZCBkb2VzIHR3byBwYXNzZXMgb3ZlciB0aGUgY29sbGVjdGlv bi4NCg0KUmVhbC13b3JsZCB1c2FnZSBpcyB3aWRlc3ByZWFkOg0KDQotIFtPcGVuIHNvdXJjZSBS dWJ5IHByb2plY3RzIHVzaW5nIHRoaXMgcGF0dGVybl0oaHR0cHM6Ly9naXRodWIuY29tL3NlYXJj aD9xPWxhbmclM0FydWJ5KyUyRiU1Qy5tYXAlNUNzKiU1QyU3QiU1QiU1RSU3RCU1RColNUMlN0Ql NUMuam9pbiUyRiZ0eXBlPWNvZGUpDQotIFtXaXRoaW4gUmFpbHNdKGh0dHBzOi8vZ2l0aHViLmNv bS9zZWFyY2g/cT1sYW5nJTNBcnVieSslMkYlNUMubWFwJTVDcyolNUMlN0IlNUIlNUUlN0QlNUQq JTVDJTdEJTVDLmpvaW4lMkYrb3JnJTNBcmFpbHMmdHlwZT1jb2RlKQ0KLSBbV2l0aGluIFJ1Ynkg aXRzZWxmXShodHRwczovL2dpdGh1Yi5jb20vc2VhcmNoP3E9bGFuZyUzQXJ1YnkrJTJGJTVDLm1h cCU1Q3MqJTVDJTdCJTVCJTVFJTdEJTVEKiU1QyU3RCU1Qy5qb2luJTJGK29yZyUzQXJ1YnkmdHlw ZT1jb2RlKQ0KDQojIyMgUHJvcG9zYWwNCg0KSnVzdCBsaWtlIGBmaWx0ZXJfbWFwYCBleGlzdHMg dG8gY29sbGFwc2UgYSBjb21tb24gYG1hcCArIGNvbXBhY3RgLCB0aGlzDQpwcm9wb3NhbCBpbnRy b2R1Y2VzIGBFbnVtZXJhYmxlI2pvaW5fbWFwYCwgd2hpY2ggbWFwcyBhbmQgam9pbnMgaW4gYSBz aW5nbGUNCnBhc3MuDQoNCmBgYHJ1YnkNCnVzZXJzLmpvaW5fbWFwKCIsICIsICY6bmFtZSkNCmBg YA0KDQpBIFJ1YnkgaW1wbGVtZW50YXRpb24gY291bGQgbG9vayBsaWtlIHRoaXM6DQoNCmBgYHJ1 YnkNCm1vZHVsZSBFbnVtZXJhYmxlDQogIGRlZiBqb2luX21hcChzZXAgPSAiIikNCiAgICByZXR1 cm4gIiIgdW5sZXNzIGJsb2NrX2dpdmVuPw0KDQogICAgc3RyID0gKyIiDQogICAgZmlyc3QgPSB0 cnVlDQoNCiAgICBlYWNoIGRvIHxpdGVtfA0KICAgICAgc3RyIDw8IHNlcCB1bmxlc3MgZmlyc3QN CiAgICAgIHN0ciA8PCB5aWVsZChpdGVtKS50b19zDQogICAgICBmaXJzdCA9IGZhbHNlDQogICAg ZW5kDQoNCiAgICBzdHINCiAgZW5kDQplbmQNCmBgYA0KDQpUaGUgbmFtZSBgam9pbl9tYXBgIGZv bGxvd3MgdGhlIHByZWNlZGVudCBvZiBgZmlsdGVyX21hcGAsIGVtcGhhc2l6aW5nIHRoZSBmaW5h bA0Kb3BlcmF0aW9uIChgam9pbmApIG92ZXIgdGhlIGludGVybWVkaWF0ZSAoYG1hcGApLg0KDQoN CiMjIyBQcmlvciBBcnQNCg0KU29tZSBvdGhlciBsYW5ndWFnZXMgaGF2ZSBzaW1pbGFyIGZ1bmN0 aW9uYWxpdHksIGJ1dCB3aXRoIGRpZmZlcmVudCBuYW1lcyBvciBpbXBsZW1lbnRhdGlvbnM6DQoN CiMjIyMgRWxpeGlyDQoNCkVsaXhpciBoYXMgdGhpcyB2aWEgW3RoZSBgRW51bS5tYXBfam9pbi8z YCBmdW5jdGlvbl0oaHR0cHM6Ly9oZXhkb2NzLnBtL2VsaXhpci8xLjEyL0VudW0uaHRtbCNtYXBf am9pbi8zKToNCg0KYGBgZWxpeGlyDQpFbnVtLm1hcF9qb2luKFsxLCAyLCAzXSwgJigmMSAqIDIp KQ0KIjI0NiINCg0KRW51bS5tYXBfam9pbihbMSwgMiwgM10sICIgPSAiLCAmKCYxICogMikpDQoi MiA9IDQgPSA2Ig0KYGBgDQoNCiMjIyMgQ3J5c3RhbA0KDQpDcnlzdGFsLCBvbiB0aGUgb3RoZXIg aGFuZCwgW3VzZXMgYEVudW1lcmFibGUjam9pbmAgd2l0aCBhIGJsb2NrXShodHRwczovL2NyeXN0 YWwtbGFuZy5vcmcvYXBpLzEuMTYuMy9FbnVtZXJhYmxlLmh0bWwjam9pbiUyOHNlcGFyYXRvciUz RCUyMiUyMiUyQyUyNiUzQVQtJTNFJTI5LWluc3RhbmNlLW1ldGhvZCk6DQoNCmBgYGNyeXN0YWwN ClsxLCAyLCAzXS5qb2luKCIsICIpIHsgfGl8IC1pIH0gIyA9PiAiLTEsIC0yLCAtMyINCmBgYA0K DQojIyMjIEtvdGxpbg0KDQpLb3RsaW4gaGFzIGEgc2ltaWxhciBbZnVuY3Rpb24gY2FsbGVkIGBq b2luVG9TdHJpbmdgXShodHRwczovL2tvdGxpbmxhbmcub3JnL2FwaS9jb3JlL2tvdGxpbi1zdGRs aWIva290bGluLmNvbGxlY3Rpb25zL2pvaW4tdG8tc3RyaW5nLmh0bWwpIHRoYXQgY2FuIHRha2Ug YSB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbjoNCg0KYGBga290bGluDQp2YWwgY2hhcnMgPSBjaGFy QXJyYXlPZignYScsICdiJywgJ2MnKQ0KcHJpbnRsbihjaGFycy5qb2luVG9TdHJpbmcoKSB7IGl0 LnVwcGVyY2FzZUNoYXIoKS50b1N0cmluZygpIH0pIC8vIEEsIEIsIEMgDQpgYGANCg0KDQoNCi0t IA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29y ZUBtbC5ydWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1Ynkt Y29yZS1sZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21s LnJ1YnktbGFuZy5vcmcvbWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv Cg==