{"action":"created","issue":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1961","labels_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1961/labels{/name}","comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1961/comments","events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1961/events","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1961","id":73051013,"number":1961,"title":"Add zip and combineLatest array operators","user":{"login":"larcus94","id":762049,"avatar_url":"https://avatars.githubusercontent.com/u/762049?v=3","gravatar_id":"","url":"https://api.github.com/users/larcus94","html_url":"https://github.com/larcus94","followers_url":"https://api.github.com/users/larcus94/followers","following_url":"https://api.github.com/users/larcus94/following{/other_user}","gists_url":"https://api.github.com/users/larcus94/gists{/gist_id}","starred_url":"https://api.github.com/users/larcus94/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larcus94/subscriptions","organizations_url":"https://api.github.com/users/larcus94/orgs","repos_url":"https://api.github.com/users/larcus94/repos","events_url":"https://api.github.com/users/larcus94/events{/privacy}","received_events_url":"https://api.github.com/users/larcus94/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"jspahrsummers","id":432536,"avatar_url":"https://avatars.githubusercontent.com/u/432536?v=3","gravatar_id":"","url":"https://api.github.com/users/jspahrsummers","html_url":"https://github.com/jspahrsummers","followers_url":"https://api.github.com/users/jspahrsummers/followers","following_url":"https://api.github.com/users/jspahrsummers/following{/other_user}","gists_url":"https://api.github.com/users/jspahrsummers/gists{/gist_id}","starred_url":"https://api.github.com/users/jspahrsummers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspahrsummers/subscriptions","organizations_url":"https://api.github.com/users/jspahrsummers/orgs","repos_url":"https://api.github.com/users/jspahrsummers/repos","events_url":"https://api.github.com/users/jspahrsummers/events{/privacy}","received_events_url":"https://api.github.com/users/jspahrsummers/received_events","type":"User","site_admin":true},"milestone":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones/4","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/milestones/3.0","labels_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones/4/labels","id":393809,"number":4,"title":"3.0","description":"Rethinking some of the [bigger underlying concepts in RAC](https://gist.github.com/jspahrsummers/7000136), particularly those inspired by Rx.\r\n\r\nHowever, we need to take backwards compatibility more seriously than we did for 1.x → 2.0, since our long-time users have already gone through that hellish migration, and we've gained even more users since then.","creator":{"login":"jspahrsummers","id":432536,"avatar_url":"https://avatars.githubusercontent.com/u/432536?v=3","gravatar_id":"","url":"https://api.github.com/users/jspahrsummers","html_url":"https://github.com/jspahrsummers","followers_url":"https://api.github.com/users/jspahrsummers/followers","following_url":"https://api.github.com/users/jspahrsummers/following{/other_user}","gists_url":"https://api.github.com/users/jspahrsummers/gists{/gist_id}","starred_url":"https://api.github.com/users/jspahrsummers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspahrsummers/subscriptions","organizations_url":"https://api.github.com/users/jspahrsummers/orgs","repos_url":"https://api.github.com/users/jspahrsummers/repos","events_url":"https://api.github.com/users/jspahrsummers/events{/privacy}","received_events_url":"https://api.github.com/users/jspahrsummers/received_events","type":"User","site_admin":true},"open_issues":10,"closed_issues":309,"state":"open","created_at":"2013-08-04T02:52:56Z","updated_at":"2015-05-08T01:32:38Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2015-05-04T15:26:37Z","updated_at":"2015-05-08T04:43:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1961","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1961","diff_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1961.diff","patch_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1961.patch"},"body":"So I've tried to use RAC as a Futures & Promises library in an app I'm working on and realized that the `zip` and `combineLatest` operators would only return tuples which is rather inconvenient when the number of signals or signal producers is variable.\r\n\r\nSo I've added the array operators to make code as follows possible:\r\n```swift\r\nzip(repositories.map { github.getRepository($0.fullName) }).start(error: nil, completed: nil, interrupted: nil, next:  {}\r\n```\r\n\r\nThis is my first pull request for RAC so excuse me if I forgot about something very obvious."},"comment":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/comments/100099036","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1961#issuecomment-100099036","issue_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1961","id":100099036,"user":{"login":"jspahrsummers","id":432536,"avatar_url":"https://avatars.githubusercontent.com/u/432536?v=3","gravatar_id":"","url":"https://api.github.com/users/jspahrsummers","html_url":"https://github.com/jspahrsummers","followers_url":"https://api.github.com/users/jspahrsummers/followers","following_url":"https://api.github.com/users/jspahrsummers/following{/other_user}","gists_url":"https://api.github.com/users/jspahrsummers/gists{/gist_id}","starred_url":"https://api.github.com/users/jspahrsummers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspahrsummers/subscriptions","organizations_url":"https://api.github.com/users/jspahrsummers/orgs","repos_url":"https://api.github.com/users/jspahrsummers/repos","events_url":"https://api.github.com/users/jspahrsummers/events{/privacy}","received_events_url":"https://api.github.com/users/jspahrsummers/received_events","type":"User","site_admin":true},"created_at":"2015-05-08T04:43:05Z","updated_at":"2015-05-08T04:43:05Z","body":"Thanks for making those changes! Could you please also add a few small unit tests that exercise the new `combineLatest` and `zip` over a sequence of signals, and a sequence of producers? :pray:"}}