[ruby-core:119948] [Ruby master Feature#20899] Reconsider adding `Array#find_map`
From:
"toy (Ivan Kuchin) via ruby-core" <ruby-core@...>
Date:
2024-11-16 12:51:40 UTC
List:
ruby-core #119948
SXNzdWUgIzIwODk5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgdG95IChJdmFuIEt1Y2hpbikuDQoNCg0K bm9idSAoTm9idXlvc2hpIE5ha2FkYSkgd3JvdGUgaW4gI25vdGUtMToNCj4gQXMgZm9yIHRoaXMg bmFtZSwgSeKAmW0gbm90IHN1cmUgaWYgaXQgaXMgYXBwcm9wcmlhdGUsIHRob3VnaC4NCg0KRmV3 IG1vcmUgaWRlYXMgZm9yIHRoZSBuYW1lOg0KDQpgYGByYg0KIyB0byBub3QgZXhwbGljaXRseSB1 c2Ugd29yZCAibWFwIiBpZiBpdCBmZWVscyBjb25mdXNpbmcNCmZpbmRfbWFwcGVkDQpmaW5kX3Ry YW5zZm9ybQ0KZmluZF90cmFuc2Zvcm1lZA0KDQojIHRvIGNvbm5lY3Qgd2l0aCBgT2JqZWN0I3Ro ZW5gIG1ldGhvZA0KZmluZF90aGVuDQpmaW5kX2FuZF90aGVuDQoNCiMgdG8gZXhwbGljaXRseSBj b25uZWN0IHRvIGZpbHRlcl9tYXANCmZpbHRlcl9tYXBfZmlyc3QNCmBgYA0KDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMyMDg5OTogUmVjb25zaWRl ciBhZGRpbmcgYEFycmF5I2ZpbmRfbWFwYA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNz dWVzLzIwODk5I2NoYW5nZS0xMTA2NzENCg0KKiBBdXRob3I6IHRveSAoSXZhbiBLdWNoaW4pDQoq IFN0YXR1czogT3Blbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K SSB3b3VsZCBsaWtlIHRvIHJldHJ5IHByb3Bvc2luZyBtZXRob2QgYEFycmF5I2ZpbmRfbWFwYCB0 aGF0IHdhcyByZWplY3RlZCBpbiBbODQyMV0oaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNz dWVzLzg0MjEpIHdoaWNoIGhhcHBlbmVkIGJlZm9yZSBpbnRyb2R1Y3Rpb24gb2YgYGZpbHRlcl9t YXBgIGluIFsxNTMyM10oaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE1MzIzKS4N Ckl0IHdvdWxkIG1ha2UgY29kZSBuaWNlciB3aGVuZXZlciB0aGVyZSBpcyBhIG5lZWQgdG8gZ2V0 IHRoZSBmaXJzdCB0cnV0aHkgcmVzdWx0IG9mIGFwcGx5aW5nIHNvbWUgY29kZS4NCg0KQWRhcHRp bmcgZXhhbXBsZXMgZnJvbSBgZmlsdGVyX21hcGAgZG9jdW1lbnRhdGlvbiwgYnV0IGlmIEkgbmVl ZCBvbmx5IHRoZSBmaXJzdCB2YWx1ZToNCmBgYHJiDQooMS4uOSkuZmluZF9tYXAge3xpfCBpICog MiBpZiBpLmV2ZW4/IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjID0+IDQNCntmb286 IDAsIGJhcjogMSwgYmF6OiAyfS5maW5kX21hcCB7fGtleSwgdmFsdWV8IGtleSBpZiB2YWx1ZS5l dmVuPyB9ICMgPT4gOmZvbw0KYGBgDQoNCk9yIGFuIGV4YW1wbGUgb2YgZ2V0dGluZyBtYXRjaCBn cm91cCBmb3IgZmlyc3Qgc3VjY2Vzc2Z1bCBtYXRjaDoNCg0KYGBgcmINCmxpc3QgPSBbJ3NvbWUg MTIzJywgJ2xpc3QgMjM0JywgJ29mIDM0NScsICdzdHJpbmdzIDQ1NiddDQoNCmxpc3QuZmluZF9t YXB7IHxzfCBzWy9cQW9mIChcZCspXHovLCAxXSB9ICMgPT4gIjM0NSINCmBgYA0KDQpDdXJyZW50 bHkgSSBpbWFnaW5lIGVpdGhlciBtb3JlIGNvZGUgYW5kL29yIGluZWZmaWNpZW5jeSAoZXh0cmEg Y2FsbHMgYW5kL29yIG9iamVjdHMpOg0KDQpgYGByYg0KIyBjb2RlIGNhbGxlZCB0d2ljZQ0KbGlz dC5maW5keyB8c3wgc1svXEFvZiAoXGQrKVx6LywgMV0gfSYudGhlbnsgfHN8IHNbL1xBb2YgKFxk Kylcei8sIDFdIH0gIyA9PiAiMzQ1Ig0KDQojIG1vcmUgbG9naWMNCnJlc3VsdCA9IG5pbA0KbGlz dC5lYWNoIGRvIHxzfA0KICBicmVhayBpZiAocmVzdWx0ID0gc1svXEFvZiAoXGQrKVx6LywgMV0p DQplbmQNCnJlc3VsdCAjID0+ICIzNDUiDQoNCiMgb3INCnJlc3VsdCA9IG5pbA0KbGlzdC5maW5k IGRvIHxzfA0KICByZXN1bHQgPSBzWy9cQW9mIChcZCspXHovLCAxXQ0KZW5kDQpyZXN1bHQgIyA9 PiAiMzQ1Ig0KDQojIGV4dHJhIGNhbGxzIGZvciBpdGVtcyB3aGljaCBjb21lIGFmdGVyIGl0ZW0g dGhhdCB3ZSB3ZXJlIGxvb2tpbmcgZm9yDQpsaXN0Lm1hcHsgfHN8IHNbL1xBb2YgKFxkKylcei8s IDFdIH0uZmluZHsgXzEgfSAjID0+ICIzNDUiDQoNCiMgdXNpbmcgbGF6eQ0KbGlzdC5sYXp5Lm1h cHsgfHN8IHNbL1xBb2YgKFxkKylcei8sIDFdIH0uZmluZHsgXzEgfSAjID0+ICIzNDUiDQoNCiMg b3IgYXMgc3VnZ2VzdGVkIGJ5IEBhbGV4YmFycmV0IGluIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnL2lzc3Vlcy84NDIxP3RhYj1oaXN0b3J5I25vdGUtNw0KbGlzdC5sYXp5LmZpbHRlcl9tYXB7 IHxzfCBzWy9cQW9mIChcZCspXHovLCAxXSB9LmZpcnN0ICMgPT4gIjM0NSINCg0KIyB1c2luZyB0 cmlja3MsIGFzIHN1Z2dlc3RlZCBieSBAenZlcm9rIGluIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnL2lzc3Vlcy84NDIxP3RhYj1oaXN0b3J5I25vdGUtNA0KbGlzdC5maW5keyB8c3wgcmVzdWx0 ID0gc1svXEFvZiAoXGQrKVx6LywgMV0gYW5kIGJyZWFrIHJlc3VsdCB9ICMgPT4gIjM0NSINCmBg YA0KDQpJbXBsZW1lbnRhdGlvbiBpbiBydWJ5IGNhbiBiZToNCmBgYHJiDQpFbnVtZXJhYmxlLmNs YXNzX2V2YWwgZG8NCiAgZGVmIGZpbmRfbWFwKCZibG9jaykNCiAgICBlYWNoIGRvIHxlbGVtZW50 fA0KICAgICAgYmxvY2tfcmVzdWx0ID0gYmxvY2suY2FsbChlbGVtZW50KQ0KICAgICAgcmV0dXJu IGJsb2NrX3Jlc3VsdCBpZiBibG9ja19yZXN1bHQNCiAgICBlbmQNCiAgICANCiAgICBuaWwNCiAg ZW5kDQplbmQNCmBgYA0KDQpBbiBleGFtcGxlIGZyb20gYW5vdGhlciBsYW5ndWFnZSAtIHNjYWxh IG1ldGhvZCBbYGNvbGxlY3RgXShodHRwczovL3d3dy5zY2FsYS1sYW5nLm9yZy9hcGkvMy41LjIv c2NhbGEvY29sbGVjdGlvbi9BcnJheU9wcy5odG1sI2NvbGxlY3QtNjhlKSB3b3JrcyBhbGlrZSBg ZmlsdGVyX21hcGAgYW5kIFtgY29sbGVjdEZpcnN0YF0oaHR0cHM6Ly93d3cuc2NhbGEtbGFuZy5v cmcvYXBpLzMuNS4yL3NjYWxhL2NvbGxlY3Rpb24vQXJyYXlPcHMuaHRtbCNjb2xsZWN0Rmlyc3Qt MjVkKSB3b3VsZCBiZSBsaWtlIGBmaW5kX21hcGAuDQoNCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5n Lm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwu cnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3Jn L21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLw==