[ruby-core:123226] [Ruby Feature#21564] Extend permutation, repeated_permutation, combination and repeated_combination arguments
From:
"toy (Ivan Kuchin) via ruby-core" <ruby-core@...>
Date:
2025-09-11 21:41:59 UTC
List:
ruby-core #123226
SXNzdWUgIzIxNTY0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgdG95IChJdmFuIEt1Y2hpbikuDQoNCg0K QGR1ZXJzdCBXaGVuIGZpbmFsIG51bWJlciBvZiBwZXJtdXRhdGlvbnMgaXMgc21hbGwgLSB0aGVy ZSBpcyBubyBwcm9ibGVtIG1hdGVyaWFsaXNpbmcgYWxsIG9mIHRoZW0gYW5kIGpvaW5pbmcgaW4g b25lIGFycmF5IHVzaW5nIGBmbGF0X21hcGAsIGJ1dCB3aGVuIG51bWJlciBvZiBwZXJtdXRhdGlv bnMvY29tYmluYXRpb25zIGlzIGJpZyBhbmQgdGhlcmUgaXMgbm8gbmVlZCB0byBnZXQgYWxsIHJl c3VsdHMgaW4gbWVtb3J5LCB1c2luZyBmbGF0X21hcCB3b3VsZCBiZSB3YXN0ZWZ1bC4NCg0KU28g Zm9yIGV4YW1wbGUgZm9sbG93aW5nIHdvdWxkIGJlIGNvbXBhY3QgYW5kIGVmZmljaWVudDoNCmBg YHJ1YnkNCmFscGhhYmV0ID0gWyonYScuLid6J10NCg0KYWxwaGFiZXQucmVwZWF0ZWRfcGVybXV0 YXRpb24oKjMuLjYpLmZpbmR7IOKApiB9DQpgYGANCkRvaW5nIHNhbWUgd2l0aCBgZmxhdF9tYXBg IHdpbGwgdGFrZSBsb25nIHRpbWUgdG8gbWF0ZXJpYWxpc2UgYWxsIHBlcm11dGF0aW9uczoNCmBg YHJ1YnkNCigzLi42KS5mbGF0X21hcHsgfGl8IGFscGhhYmV0LnJlcGVhdGVkX3Blcm11dGF0aW9u KGkpLnRvX2EgfS5maW5keyDigKYgfQ0KYGBgDQpJdCBpcyBwb3NzaWJsZSB0byByZXNvbHZlIHRo aXMgdXNpbmcgYGxhenlgOg0KYGBgcnVieQ0KKDMuLjYpLmxhenkuZmxhdF9tYXB7IHxpfCBhbHBo YWJldC5yZXBlYXRlZF9wZXJtdXRhdGlvbihpKS5sYXp5IH0uZmluZHsg4oCmIH0NCmBgYA0KT3Ig dXNpbmcgYGNoYWluYDoNCmBgYHJ1YnkNCkVudW1lcmF0b3I6OkNoYWluLm5ldygqKDMuLjYpLm1h cHsgfGl8IGFscGhhYmV0LnJlcGVhdGVkX3Blcm11dGF0aW9uKGkpIH0pLmZpbmR7IOKApiB9DQpg YGANCkJ1dCBJIHRoaW5rIGJvdGggYXJlIGhhcmRlciB0byB3cml0ZSBhbmQgcmVhZA0KDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMyMTU2NDogRXh0 ZW5kIHBlcm11dGF0aW9uLCByZXBlYXRlZF9wZXJtdXRhdGlvbiwgY29tYmluYXRpb24gYW5kIHJl cGVhdGVkX2NvbWJpbmF0aW9uIGFyZ3VtZW50cw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv aXNzdWVzLzIxNTY0I2NoYW5nZS0xMTQ1NTYNCg0KKiBBdXRob3I6IHRveSAoSXZhbiBLdWNoaW4p DQoqIFN0YXR1czogT3Blbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KV2hlbiB1c2luZyBmdW5jdGlvbnMgYHBlcm11dGF0aW9uYCwgYHJlcGVhdGVkX3Blcm11dGF0 aW9uYCwgYGNvbWJpbmF0aW9uYCBhbmQgYHJlcGVhdGVkX2NvbWJpbmF0aW9uYCwgb2Z0ZW4gb25l IG5lZWRzIG5vdCBvbmUsIGJ1dCBtdWx0aXBsZSBwZXJtdXRhdGlvbi9jb21iaW5hdGlvbiBzaXpl cy4gQ3VycmVudGx5IGFsbCBmdW5jdGlvbnMgYWNjZXB0IG9uZSBJbnRlZ2VyIGFyZ3VtZW50IChm b3IgYHBlcm11dGF0aW9uYCBpdCBpcyBvcHRpb25hbCBhbmQgZGVmYXVsdHMgdG8gYXJyYXkgc2l6 ZSksIGFuZCBpdCB3b3VsZCBiZSBtb3JlIHBvd2VyZnVsIChub3QgcmVxdWlyZSBpdGVyYXRpb24g b2YgbGVuZ3RocyBhbmQgcG9zc2libHkgZmxhdHRlbmluZykgaWYgaXQgd291bGQgYWNjZXB0IG11 bHRpcGxlIGxlbmd0aHM6DQoNCmBgYHJ1YnkNCmEgPSBbMSwgMiwgM10NCg0KYS5wZXJtdXRhdGlv bigqMS4uMykudG9fYSAjID0+IFtbMV0sIFsyXSwgWzNdLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAjICAgICBbMSwgMl0sIFsxLCAzXSwgWzIsIDFdLCBbMiwgM10sIFszLCAxXSwgWzMsIDJd LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBbMSwgMiwgM10sIFsxLCAzLCAyXSwg WzIsIDEsIDNdLCBbMiwgMywgMV0sIFszLCAxLCAyXSwgWzMsIDIsIDFdXQ0KDQphLnBlcm11dGF0 aW9uKDEsIDMpLnRvX2EgIyA9PiBbWzFdLCBbMl0sIFszXSwNCiAgICAgICAgICAgICAgICAgICAg ICAgICAjICAgICBbMSwgMiwgM10sIFsxLCAzLCAyXSwgWzIsIDEsIDNdLCBbMiwgMywgMV0sIFsz LCAxLCAyXSwgWzMsIDIsIDFdXQ0KDQphLnBlcm11dGF0aW9uKDMsIDEpLnRvX2EgIyA9PiBbWzEs IDIsIDNdLCBbMSwgMywgMl0sIFsyLCAxLCAzXSwgWzIsIDMsIDFdLCBbMywgMSwgMl0sIFszLCAy LCAxXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBbMV0sIFsyXSwgWzNdXQ0KDQph LnJlcGVhdGVkX3Blcm11dGF0aW9uKDIsIDEpLnRvX2EgIyA9PiBbWzEsIDFdLCBbMSwgMl0sIFsx LCAzXSwgWzIsIDFdLCBbMiwgMl0sIFsyLCAzXSwgWzMsIDFdLCBbMywgMl0sIFszLCAzXSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBbMV0sIFsyXSwgWzNdXQ0KDQph LmNvbWJpbmF0aW9uKCoxLi4zKS50b19hICMgPT4gW1sxXSwgWzJdLCBbM10sDQogICAgICAgICAg ICAgICAgICAgICAgICAgICMgICAgIFsxLCAyXSwgWzEsIDNdLCBbMiwgM10sDQogICAgICAgICAg ICAgICAgICAgICAgICAgICMgICAgIFsxLCAyLCAzXV0NCg0KYS5yZXBlYXRlZF9jb21iaW5hdGlv bigqMS4uMykudG9fYSAjID0+IFtbMV0sIFsyXSwgWzNdLA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjICAgICBbMSwgMV0sIFsxLCAyXSwgWzEsIDNdLCBbMiwgMl0sIFsyLCAz XSwgWzMsIDNdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBbMSwg MSwgMV0sIFsxLCAxLCAyXSwgWzEsIDEsIDNdLCBbMSwgMiwgMl0sIFsxLCAyLCAzXSwgWzEsIDMs IDNdLCBbMiwgMiwgMl0sIFsyLCAyLCAzXSwgWzIsIDMsIDNdLCBbMywgMywgM11dDQoNCiMgZmlu ZCByaWdodCBjb21iaW5hdGlvbiBvZiBsZXR0ZXJzDQpbKidhJy4uJ3onXS5yZXBlYXRlZF9wZXJt dXRhdGlvbigqMy4uNikuZmluZCBkbyB8Y2hhcnN8DQogIGNvcnJlY3RfY29tYmluYXRpb24/KGNo YXJzKQ0KZW5kDQoNCiMgbmHDr3ZlIGtuYXBzYWNrIHNvbHV0aW9uDQpkZWYgbWF4X2tuYXBzYWNr X3ZhbHVlKGl0ZW1zLCB3ZWlnaHRfbWF4KQ0KICBpdGVtcy5jb21iaW5hdGlvbigqMS4uaXRlbXMu bGVuZ3RoKQ0KICAgIC5tYXB7IHxpdGVtc3wgW2l0ZW1zLnN1bSgmOndlaWdodCksIGl0ZW1zLnN1 bSgmOnZhbHVlKV0gfQ0KICAgIC5yZWplY3R7IHx3ZWlnaHRfc3VtLCBffCB3ZWlnaHRfc3VtID4g d2VpZ2h0X21heCB9DQogICAgLm1heF9ieXsgfF8sIHZhbHVlX3N1bXwgdmFsdWVfc3VtIH0NCiAg ICAmLmxhc3QgfHwgMA0KZW5kDQpgYGANCg0KSGFjayBpbiBjb2RlIHRvIGVuaGFuY2UgY3VycmVu dCBtZXRob2RzIHdvdWxkIGJlOg0KYGBgcnVieQ0KY2xhc3MgQXJyYXkNCiAgJWlbDQogICAgY29t YmluYXRpb24NCiAgICBwZXJtdXRhdGlvbg0KICAgIHJlcGVhdGVkX2NvbWJpbmF0aW9uDQogICAg cmVwZWF0ZWRfcGVybXV0YXRpb24NCiAgXS5lYWNoIGRvIHxtZXRob2RfbmFtZXwNCiAgICBhbGlh c19tZXRob2QgIm9yaWdpbmFsXyN7bWV0aG9kX25hbWV9IiwgbWV0aG9kX25hbWUNCg0KICAgIGNs YXNzX2V2YWwgPDwtUlVCWSwgX19GSUxFX18sIF9fTElORV9fICsgMQ0KICAgICAgZGVmICN7bWV0 aG9kX25hbWV9KCpjb3VudHMsICZibG9jaykNCiAgICAgICAgcmV0dXJuIHRvX2VudW0oX19tZXRo b2RfXywgKmNvdW50cykgdW5sZXNzIGJsb2NrDQoNCiAgICAgICAgY291bnRzLmVhY2ggZG8gfGNv dW50fA0KICAgICAgICAgIG9yaWdpbmFsXyN7bWV0aG9kX25hbWV9KGNvdW50LCAmYmxvY2spDQog ICAgICAgIGVuZA0KICAgICAgZW5kDQogICAgUlVCWQ0KICBlbmQNCmVuZA0KYGBgDQoNCg0KDQot LSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNv cmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5 LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9t bC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3Jn Lwo=