{"action":"created","issue":{"url":"https://api.github.com/repos/ramda/ramda/issues/1447","repository_url":"https://api.github.com/repos/ramda/ramda","labels_url":"https://api.github.com/repos/ramda/ramda/issues/1447/labels{/name}","comments_url":"https://api.github.com/repos/ramda/ramda/issues/1447/comments","events_url":"https://api.github.com/repos/ramda/ramda/issues/1447/events","html_url":"https://github.com/ramda/ramda/issues/1447","id":111676031,"number":1447,"title":"deprecate R.converge","user":{"login":"davidchambers","id":210406,"avatar_url":"https://avatars.githubusercontent.com/u/210406?v=3","gravatar_id":"","url":"https://api.github.com/users/davidchambers","html_url":"https://github.com/davidchambers","followers_url":"https://api.github.com/users/davidchambers/followers","following_url":"https://api.github.com/users/davidchambers/following{/other_user}","gists_url":"https://api.github.com/users/davidchambers/gists{/gist_id}","starred_url":"https://api.github.com/users/davidchambers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidchambers/subscriptions","organizations_url":"https://api.github.com/users/davidchambers/orgs","repos_url":"https://api.github.com/users/davidchambers/repos","events_url":"https://api.github.com/users/davidchambers/events{/privacy}","received_events_url":"https://api.github.com/users/davidchambers/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ramda/ramda/labels/proposal","name":"proposal","color":"66cc66"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":36,"created_at":"2015-10-15T18:15:45Z","updated_at":"2016-02-19T20:35:46Z","closed_at":"2016-02-18T19:57:31Z","body":"[`R.lift`][1] covers all my uses of [`R.converge`][2].\r\n\r\n```javascript\r\n> R.converge(R.subtract, [R.inc, Math.sqrt])(9)\r\n7\r\n> R.lift(R.subtract)(R.inc, Math.sqrt)(9)\r\n7\r\n```\r\n\r\nIs `R.converge` only necessary to support non-unary \"transformation\" functions?\r\n\r\n\r\n[1]: http://ramdajs.com/docs/#lift\r\n[2]: http://ramdajs.com/docs/#converge\r\n"},"comment":{"url":"https://api.github.com/repos/ramda/ramda/issues/comments/186395446","html_url":"https://github.com/ramda/ramda/issues/1447#issuecomment-186395446","issue_url":"https://api.github.com/repos/ramda/ramda/issues/1447","id":186395446,"user":{"login":"benperez","id":1057202,"avatar_url":"https://avatars.githubusercontent.com/u/1057202?v=3","gravatar_id":"","url":"https://api.github.com/users/benperez","html_url":"https://github.com/benperez","followers_url":"https://api.github.com/users/benperez/followers","following_url":"https://api.github.com/users/benperez/following{/other_user}","gists_url":"https://api.github.com/users/benperez/gists{/gist_id}","starred_url":"https://api.github.com/users/benperez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benperez/subscriptions","organizations_url":"https://api.github.com/users/benperez/orgs","repos_url":"https://api.github.com/users/benperez/repos","events_url":"https://api.github.com/users/benperez/events{/privacy}","received_events_url":"https://api.github.com/users/benperez/received_events","type":"User","site_admin":false},"created_at":"2016-02-19T20:35:46Z","updated_at":"2016-02-19T20:35:46Z","body":"OK, so to me converge as it currently stands has 3 problems:\r\n1. **Accepts a variadic function as its first argument**\r\nWe can't know how many functions are supposed to be supplied as input transforming functions until the user actually supplies how many he or she wants. This is a source of ambiguity since we're mixing the type of the function with the data passed into it.\r\n2.  **Accepts functions with different lengths in its second argument**\r\nThe length of the resulting function is determined by scanning through the functions passed in and taking the max length. Again we're mixing types and data. I think having functions in a pipeline which operate on multiple arguments can be useful, but I'd rather see a more methodical approach like the one proposed by @scott-christopher in [this thread](https://github.com/ramda/ramda/issues/1645#issuecomment-184961760).\r\n3.  **Context**\r\nIt seems like it's already been established in this thread that this isn't something we care to support in this function anymore.\r\n\r\nWe can eliminate all of these problems by reshaping converge functionality to be much simpler and easier to reason about. It seems like @CrossEye has always made the point that we shouldn't let implementation concerns dictate API. It seems strange to let the implementation of `R.juxt` dictate the API for `R.converge`."}}