[ruby-core:114344] [Ruby master Feature#19830] Allow `Array#transpose` to take an optional size argument
From:
"tomstuart (Tom Stuart) via ruby-core" <ruby-core@...>
Date:
2023-08-04 07:42:26 UTC
List:
ruby-core #114344
SXNzdWUgIzE5ODMwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgdG9tc3R1YXJ0IChUb20gU3R1YXJ0KS4N DQoNDQoNDQpub2J1IChOb2J1eW9zaGkgTmFrYWRhKSB3cm90ZSBpbiAjbm90ZS0xOg0NCj4gV2h5 IG5vdCBgYXJ5LnRyYW5zcG9zZVsxXSYuam9pbmA/DQ0KDQ0KVGhhdCBhdm9pZHMgdGhlIGV4Y2Vw dGlvbiBidXQgcmV0dXJucyBgbmlsYCBpbnN0ZWFkIG9mIHRha2luZyBhZHZhbnRhZ2Ugb2YgYCNq b2luYOKAmXMga25vd2xlZGdlIG9mIHRoZSDigJxjb3JyZWN04oCdIHJlc3VsdCBmb3IgYW4gZW1w dHkgYXJyYXksIGkuZS4gdGhlIGVtcHR5IHN0cmluZy4gSWYgdGhlIGNhbGxlciB3YXMgZXhwZWN0 aW5nIGAjdHJhbnNwb3NlYCB0byByZXR1cm4gYW4gYXJyYXkgb2YgYXJyYXlzLCB0aGV54oCZbGwg YWxzbyBiZSBleHBlY3RpbmcgYCNqb2luYCB0byByZXR1cm4gYSBzdHJpbmcsIHNvIHRoZSBzYWZl IG5hdmlnYXRpb24gb3BlcmF0b3IganVzdCBwdXNoZXMgdGhlIGBuaWxgIHByb2JsZW0gZXZlbiBm dXJ0aGVyIGRvd25zdHJlYW0uDQ0KDQ0KU28gd2h5IG5vdCBgYXJ5LnRyYW5zcG9zZVsxXSYuam9p biB8fCAiImAgb3IgYChhcnkudHJhbnNwb3NlWzFdIHx8IFtdKS5qb2luYCBvciBldmVuIGBhcnku dHJhbnNwb3NlWzFdLnRvX2Euam9pbmA/IFllcywgYW55IG9mIHRoZW0gd2lsbCB3b3JrLiBUaGUg b3B0aW9uYWwgc2l6ZSBhcmd1bWVudCBpcyBpbnRlbmRlZCB0byBwcm92aWRlIGEgbW9yZSBnZW5l cmFsIGFuZCBlbGVnYW50IHNvbHV0aW9uIHNvIHRoYXQgdGhlc2UgY2FzZS1ieS1jYXNlIGBuaWxg IHdvcmthcm91bmRzIGNhbiBiZSBhdm9pZGVkLg0NCg0NCkhlcmUgaXMgYW4gZXhhbXBsZSB3aGlj aCBpcyBjbG9zZXIgdG8gYSBwcm9ibGVtIEkgZW5jb3VudGVyIGluIHJlYWwgcHJvZ3JhbXM6DQ0K DQ0KYGBgDQ0KPj4gYXJ5ID0gW1sxLCA6YV0sIFsyLCA6Yl0sIFszLCA6Y11dDQ0KPj4gYXJ5LnRy YW5zcG9zZS50aGVuIHsgfG51bWJlcnMsIGxldHRlcnN8IFtudW1iZXJzLnN1bSwgbGV0dGVycy5q b2luXSB9DQ0KPT4gWzYsICJhYmMiXQ0NCg0NCj4+IGFyeSA9IFtdDQ0KPj4gYXJ5LnRyYW5zcG9z ZS50aGVuIHsgfG51bWJlcnMsIGxldHRlcnN8IFtudW1iZXJzLnN1bSwgbGV0dGVycy5qb2luXSB9 DQ0KdW5kZWZpbmVkIG1ldGhvZCBgc3VtJyBmb3IgbmlsIChOb01ldGhvZEVycm9yKQ0NCmBgYA0N Cg0NCkhvdyBzaG91bGQgd2UgYXZvaWQgdGhlIGV4Y2VwdGlvbiBhbmQgZ2V0IHRoZSByZXN1bHQg d2Ugd2FudCBpbiB0aGlzIGNhc2UsIGkuZS4gYFswLCAiIl1gPyBJIHdvdWxkIGxpa2UgdG8gYXZv aWQgaGF2aW5nIHRvIGhhcmRjb2RlIHRoZSBjb3JyZWN0IOKAnGVtcHR5IGFycmF5IHJlc3VsdOKA nSB2YWx1ZSBldmVyeSB0aW1lIChlLmcuIGBbbnVtYmVycyYuc3VtIHx8IDAsIGxldHRlcnMmLmpv aW4gfHwgIiJdYCkgYmVjYXVzZSBgI3N1bWAgYW5kIGAjam9pbmAgYWxyZWFkeSBoYXZlIHRoZXNl IGJ1aWx0IGluLCBhbmQgaXTigJlzIGluY29udmVuaWVudCB0byBkZWZhdWx0IGVhY2ggcGFyYW1l dGVyIHRvIHRoZSBlbXB0eSBhcnJheSAoZS5nLiBgWyhudW1iZXJzIHx8IFtdKS5zdW0sIChsZXR0 ZXJzIHx8IFtdKS5qb2luXWApIGlmIHRoZXnigJlyZSB1c2VkIGluIG11bHRpcGxlIHBsYWNlcy4N DQoNDQpJIHVzdWFsbHkgc29sdmUgdGhlIHByb2JsZW0gb24gZW50cnkgdG8gdGhlIGJsb2NrIGJ5 IG1ha2luZyBpdHMgcGFyYW1ldGVycyBvcHRpb25hbDoNDQoNDQpgYGANDQo+PiBhcnkudHJhbnNw b3NlLnRoZW4geyB8bnVtYmVycyA9IFtdLCBsZXR0ZXJzID0gW118IFtudW1iZXJzLnN1bSwgbGV0 dGVycy5qb2luXSB9DQ0KPT4gWzAsICIiXQ0NCmBgYA0NCg0NClRoaXMgYWxsb3dzIHRoZSBib2R5 IG9mIHRoZSBibG9jayB0byBhdm9pZCBoYXZpbmcgdG8gZGVhbCB3aXRoIHRoZSBwb3NzaWJpbGl0 eSBvZiBgbnVtYmVyc2AgYW5kIGBsZXR0ZXJzYCBiZWluZyBgbmlsYDsgSSBrbm93IHRoYXQgYCNz dW1gIGFuZCBgI2pvaW5gIHdpbGwgZ2l2ZSB0aGUgY29ycmVjdCByZXN1bHRzIGF1dG9tYXRpY2Fs bHkuIEJ1dCBpdOKAmXMgdmVyYm9zZSwgYW5kIHNvbWV0aW1lcyBJIGZvcmdldCB0byBkbyBpdCwg YW5kIFt1bnRpbCByZWNlbnRseV0oaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzgw MDYpIGl0IGRpZG7igJl0IHdvcmsgd2l0aCBZSklULg0NCg0NCldpdGggdGhlIG9wdGlvbmFsIHNp emUgYXJndW1lbnQgdG8gYCN0cmFuc3Bvc2VgIEkgb25seSBoYXZlIHRvIHNheSBob3cgbWFueSBh cnJheSBwYXJhbWV0ZXJzIHRoZSBibG9jayBleHBlY3RzOg0NCg0NCmBgYA0NCj4+IGFyeS50cmFu c3Bvc2UoMikudGhlbiB7IHxudW1iZXJzLCBsZXR0ZXJzfCBbbnVtYmVycy5zdW0sIGxldHRlcnMu am9pbl0gfQ0NCj0+IFswLCAiIl0NDQpgYGANDQoNDQpBcyB3ZWxsIGFzIGJlaW5nIG1vcmUgY29u Y2lzZSwgSSB0aGluayB0aGlzIGlzIGVhc2llciB0byBnZXQgcmlnaHQgZXZlcnkgdGltZS4NDQoN DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQ0KRmVhdHVyZSAjMTk4 MzA6IEFsbG93IGBBcnJheSN0cmFuc3Bvc2VgIHRvIHRha2UgYW4gb3B0aW9uYWwgc2l6ZSBhcmd1 bWVudA0NCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTgzMCNjaGFuZ2UtMTA0 MDgxDQ0KDQ0KKiBBdXRob3I6IHRvbXN0dWFydCAoVG9tIFN0dWFydCkNDQoqIFN0YXR1czogT3Bl bg0NCiogUHJpb3JpdHk6IE5vcm1hbA0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NDQpPbmUgYmVuZWZpdCBvZiBzdXBwbHlpbmcgYW4gaW5pdGlhbCB2YWx1ZSB0byBg RW51bWVyYWJsZSNpbmplY3RgIGlzIHRoYXQgaXQgYXZvaWRzIGFuIGFubm95aW5nIGVkZ2UgY2Fz ZSB3aGVuIHRoZSBjb2xsZWN0aW9uIGlzIGVtcHR5Og0NCg0NCmBgYA0NCj4+IFsxLCAyLCAzXS5p bmplY3QoOispDQ0KPT4gNiAjIGdvb2QNDQoNDQo+PiBbXS5pbmplY3QoOispDQ0KPT4gbmlsICMg YmFkDQ0KDQ0KPj4gW10uaW5qZWN0KDAsIDorKQ0NCj0+IDAgIyBnb29kDQ0KYGBgDQ0KDQ0KQSBz aW1pbGFyIGVkZ2UgY2FzZSBleGlzdHMgZm9yIGBBcnJheSN0cmFuc3Bvc2VgOg0NCg0NCmBgYA0N Cj4+IFtbMSwgOmFdLCBbMiwgOmJdLCBbMywgOmNdXS50cmFuc3Bvc2UNDQo9PiBbWzEsIDIsIDNd LCBbOmEsIDpiLCA6Y11dICMgZ29vZA0NCg0NCj4+IFtdLnRyYW5zcG9zZQ0NCj0+IFtdICMgYmFk DQ0KYGBgDQ0KDQ0KQWx0aG91Z2ggbm8gZXhwbGljaXQgYG5pbGAgaXMgcHJvZHVjZWQgaGVyZSwg dGhlIHN1YnRsZSBwcm9ibGVtIGlzIHRoYXQgdGhlIGNhbGxlciBtYXkgYXNzdW1lIHRoYXQgdGhl IHJlc3VsdCBhcnJheSBjb250YWlucyBhcnJheXMsIGFuZCB0aGF0IGFzc3VtcHRpb24gbGVhZHMg dG8gYG5pbGBzIGluIHRoZSBlbXB0eSBjYXNlOg0NCg0NCmBgYA0NCj4+IFtbMSwgOmFdLCBbMiwg OmJdLCBbMywgOmNdXS50cmFuc3Bvc2UudGhlbiB7IF8yLmpvaW4gfQ0NCj0+ICJhYmMiDQ0KDQ0K Pj4gW10udHJhbnNwb3NlLnRoZW4geyBfMi5qb2luIH0NDQp1bmRlZmluZWQgbWV0aG9kIGBqb2lu JyBmb3IgbmlsOk5pbENsYXNzIChOb01ldGhvZEVycm9yKQ0NCmBgYA0NCg0NCklmIHdlIGFsbG93 IGBBcnJheSN0cmFuc3Bvc2VgIHRvIHRha2UgYW4gb3B0aW9uYWwgYXJndW1lbnQgc3BlY2lmeWlu ZyB0aGUgc2l6ZSBvZiB0aGUgcmVzdWx0IGFycmF5LCB3ZSBjYW4gdXNlIHRoaXMgdG8gYWx3YXlz IHJldHVybiBhbiBhcnJheSBvZiB0aGUgY29ycmVjdCBzaXplOg0NCg0NCmBgYA0NCj4+IFtbMSwg OmFdLCBbMiwgOmJdLCBbMywgOmNdXS50cmFuc3Bvc2UoMikNDQo9PiBbWzEsIDIsIDNdLCBbOmEs IDpiLCA6Y11dICMgZ29vZA0NCg0NCj4+IFtdLnRyYW5zcG9zZSgyKQ0NCj0+IFtbXSwgW11dICMg Z29vZA0NCmBgYA0NCg0NCkJ5IGF2b2lkaW5nIGFuIHVuZXhwZWN0ZWRseSBlbXB0eSByZXN1bHQg YXJyYXksIHdlIGFsc28gYXZvaWQgdW5leHBlY3RlZCBkb3duc3RyZWFtIGBuaWxgczoNDQoNDQpg YGANDQo+PiBbWzEsIDphXSwgWzIsIDpiXSwgWzMsIDpjXV0udHJhbnNwb3NlKDIpLnRoZW4geyBf Mi5qb2luIH0NDQo9PiAiYWJjIg0NCg0NCj4+IFtdLnRyYW5zcG9zZSgyKS50aGVuIHsgXzIuam9p biB9DQ0KPT4gIiINDQpgYGANDQoNDQpIZXJlIGlzIGEgcGF0Y2ggd2hpY2ggYWRkcyBhbiBvcHRp b25hbCBhcmd1bWVudCB0byBgQXJyYXkjdHJhbnNwb3NlYCB0byBzdXBwb3J0IHRoZSBhYm92ZSB1 c2FnZTogaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzgxNjcNDQoNDQpTb21ldGhp bmcgc2ltaWxhciB3YXMgcmVxdWVzdGVkIGVsZXZlbiB5ZWFycyBhZ28gaW4gIzY4NTIuIEkgYmVs aWV2ZSB0aGlzIGZlYXR1cmUgYWRkcmVzc2VzIHRoZSBwcm9ibGVtIGV4cHJlc3NlZCBpbiB0aGF0 IGlzc3VlIHdpdGhvdXQgY29tcHJvbWlzaW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBl eGlzdGluZyBjYWxsZXJzIG9mICN0cmFuc3Bvc2UuDQ0KDQ0KDQ0KDQ0KLS0gDQ0KaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvDQ0KIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1Ynkt bGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZl QG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5n Lm9yZy9tYWlsbWFuMy9wb3N0b3JpdXMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv