[ruby-core:108199] [Ruby master Feature#18685] Enumerator.product: Cartesian product of enumerables
From:
"Eregon (Benoit Daloze)" <noreply@...>
Date:
2022-04-08 10:52:01 UTC
List:
ruby-core #108199
SXNzdWUgIzE4Njg1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4N Cg0KDQpJc24ndCBpdCBzaWduaWZpY2FudGx5IHNsb3dlciB0aGFuIGRvaW5nIGl0IG1hbnVhbGx5 IGR1ZSB0byBhbGwgdGhlc2UgZXh0cmEgYmxvY2sgYW5kIG1ldGhvZCBjYWxscyBldGMgaW4gYmV0 d2Vlbj8NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVy ZSAjMTg2ODU6IEVudW1lcmF0b3IucHJvZHVjdDogQ2FydGVzaWFuIHByb2R1Y3Qgb2YgZW51bWVy YWJsZXMNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODY4NSNjaGFuZ2UtOTcx ODMNCg0KKiBBdXRob3I6IGtudSAoQWtpbm9yaSBNVVNIQSkNCiogU3RhdHVzOiBPcGVuDQoqIFBy aW9yaXR5OiBOb3JtYWwNCiogVGFyZ2V0IHZlcnNpb246IDMuMg0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSSdkIGxpa2UgdG8gYWRkIGEgbmV3IEVudW1lcmF0b3Ig Y2xhc3MgbWV0aG9kIGZvciBnZW5lcmF0aW5nIHRoZSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiBnaXZl biBlbnVtZXJhdG9ycy4NCkEgcHJvZHVjdCBoZXJlIGRvZXMgbm90IG1lYW4gYW4gYWNjdW11bGF0 ZWQgYXJyYXkgb2YgYXJyYXlzLCBidXQgYW4gZW51bWVyYXRvciB0byBlbnVtZXJhdGUgYWxsIGNv bWJpbmF0aW9ucy4NCg0KYGBgcnVieQ0KcHJvZHVjdCA9IEVudW1lcmF0b3IucHJvZHVjdCgxLi4z LCBbIkEiLCAiQiJdKQ0KcCBwcm9kdWN0LmNsYXNzICM9PiBFbnVtZXJhdG9yDQoNCnByb2R1Y3Qu ZWFjaCBkbyB8aSwgY3wNCiAgcHV0cyAiI3tpfS0je2N9Ig0KZW5kDQoNCj1iZWdpbiBvdXRwdXQN CjEtQQ0KMS1CDQoyLUENCjItQg0KMy1BDQozLUINCj1lbmQNCmBgYA0KDQpUaGlzIGNhbiBiZSB1 c2VkIHRvIHJlZHVjZSBuZXN0ZWQgYmxvY2tzIGFuZCBhbGxvd3MgZm9yIGl0ZXJhdGluZyBvdmVy IGFuIGluZGVmaW5pdGUgbnVtYmVyIG9mIGVudW1lcmFibGUgb2JqZWN0cy4NCg0KIyMgSW1wbGVt ZW50YXRpb24gbm90ZXMNCg0KLSBJdCBzaG91bGQgaW50ZXJuYWxseSB1c2UgYGVhY2hfZW50cnlg IGluc3RlYWQgb2YgYGVhY2hgIG9uIGVudW1lcmFibGUgb2JqZWN0cyB0byBtYWtlIHN1cmUgdG8g Y2FwdHVyZSBhbGwgeWllbGRlZCBhcmd1bWVudHMuDQotIElmIG5vIGVudW1lcmFibGUgb2JqZWN0 IGlzIGdpdmVuLCB0aGUgYmxvY2sgaXMgY2FsbGVkIG9uY2Ugd2l0aCBubyBhcmd1bWVudC4NCi0g SXQgc2hvdWxkIHJlamVjdCBhIGtleXdvcmQtc3R5bGUgaGFzaCBhcmd1bWVudCBzbyB3ZSBjYW4g YWRkIGtleXdvcmQgYXJndW1lbnRzIGluIHRoZSBmdXR1cmUgd2l0aG91dCBicmVha2luZyBleGlz dGluZyBjb2RlLg0KLSBIZXJlJ3MgYW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbjoNCg0KICBgYGBy dWJ5DQogICMgY2FsbC1zZXE6DQogICMgICBFbnVtZXJhdG9yLnByb2R1Y3QoKmVudW1zKSAgICAg ICAgICAgICAgICAgICAtPiBlbnVtDQogICMgICBFbnVtZXJhdG9yLnByb2R1Y3QoKmVudW1zKSB7 IHwqYXJnc3wgYmxvY2sgfSAtPiByZXR1cm4gdmFsdWUgb2YgYXJnc1swXS5lYWNoX2VudHJ5IHt9 DQogIGRlZiBFbnVtZXJhdG9yLnByb2R1Y3QoKmVudW1zLCAqKmt3LCAmYmxvY2spDQogICAga3cu ZW1wdHk/IG9yIHJhaXNlIEFyZ3VtZW50RXJyb3IsICJ1bmtub3duIGtleXdvcmQjeyJzIiBpZiBr dy5zaXplID4gMX06ICN7a3cua2V5cy5tYXAoJjppbnNwZWN0KS5qb2luKCIsICIpfSINCg0KICAg IyBUT0RPOiBzaXplIHNob3VsZCBiZSBjYWxjdWxhdGVkIGlmIHBvc3NpYmxlDQogICAgcmV0dXJu IHRvX2VudW0oX19tZXRob2RfXywgKmVudW1zLCAqKmt3KSBpZiBibG9jay5uaWw/DQoNCiAgICBl bnVtcy5yZXZlcnNlLnJlZHVjZShibG9jaykgeyB8aW5uZXIsIGVudW18DQogICAgICAtPigqdmFs dWVzKSB7DQogICAgICAgIGVudW0uZWFjaF9lbnRyeSB7IHx2YWx1ZXwNCiAgICAgICAgICBpbm5l ci5jYWxsKCp2YWx1ZXMsIHZhbHVlKQ0KICAgICAgICB9DQogICAgICB9DQogICAgfS5jYWxsKCkN CiAgZW5kDQogIGBgYA0KDQotIE5vdCB0byBiZSBjb25mdXNlZCB3aXRoIGBFbnVtZXJhdG9yLnBy b2R1Y2VgLiDwn5idDQoNCiMjIFByaW9yIGNhc2UNCi0gUHl0aG9uOiBodHRwczovL2RvY3MucHl0 aG9uLm9yZy8zL2xpYnJhcnkvaXRlcnRvb2xzLmh0bWwjaXRlcnRvb2xzLnByb2R1Y3QNCg0KDQoN Cg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0 bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+Cjxo dHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNv cmU+Cg==