{"action":"created","issue":{"url":"https://api.github.com/repos/metasoarous/semantic-csv/issues/32","labels_url":"https://api.github.com/repos/metasoarous/semantic-csv/issues/32/labels{/name}","comments_url":"https://api.github.com/repos/metasoarous/semantic-csv/issues/32/comments","events_url":"https://api.github.com/repos/metasoarous/semantic-csv/issues/32/events","html_url":"https://github.com/metasoarous/semantic-csv/pull/32","id":93845369,"number":32,"title":"Transducers","user":{"login":"mahinshaw","id":2602088,"avatar_url":"https://avatars.githubusercontent.com/u/2602088?v=3","gravatar_id":"","url":"https://api.github.com/users/mahinshaw","html_url":"https://github.com/mahinshaw","followers_url":"https://api.github.com/users/mahinshaw/followers","following_url":"https://api.github.com/users/mahinshaw/following{/other_user}","gists_url":"https://api.github.com/users/mahinshaw/gists{/gist_id}","starred_url":"https://api.github.com/users/mahinshaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mahinshaw/subscriptions","organizations_url":"https://api.github.com/users/mahinshaw/orgs","repos_url":"https://api.github.com/users/mahinshaw/repos","events_url":"https://api.github.com/users/mahinshaw/events{/privacy}","received_events_url":"https://api.github.com/users/mahinshaw/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-07-08T17:23:35Z","updated_at":"2015-07-13T21:08:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/metasoarous/semantic-csv/pulls/32","html_url":"https://github.com/metasoarous/semantic-csv/pull/32","diff_url":"https://github.com/metasoarous/semantic-csv/pull/32.diff","patch_url":"https://github.com/metasoarous/semantic-csv/pull/32.patch"},"body":"Relates to Issue #30. I added transducers namespace, and a test file.  I did not however re-implement except-first macro.  I was not really sure how to do this (still fairly new to clojure).  Any ideas would be appreciated!  All the input functions are now transducers.  I pulled your doc comments from core, and modified them for the transducer versions.  I copied over the helpers for casting as well, because i figured that may decrease requiring core when it's not wanted.  Let me know what you think.  I will be happy to make any necessary changes you think are needed.  I Learned a lot doing this.\r\n\r\nAlso, I added a structify function to separate the functionality out.  I can change it to just being a mappify function if you would rather it be that way."},"comment":{"url":"https://api.github.com/repos/metasoarous/semantic-csv/issues/comments/121059710","html_url":"https://github.com/metasoarous/semantic-csv/pull/32#issuecomment-121059710","issue_url":"https://api.github.com/repos/metasoarous/semantic-csv/issues/32","id":121059710,"user":{"login":"mahinshaw","id":2602088,"avatar_url":"https://avatars.githubusercontent.com/u/2602088?v=3","gravatar_id":"","url":"https://api.github.com/users/mahinshaw","html_url":"https://github.com/mahinshaw","followers_url":"https://api.github.com/users/mahinshaw/followers","following_url":"https://api.github.com/users/mahinshaw/following{/other_user}","gists_url":"https://api.github.com/users/mahinshaw/gists{/gist_id}","starred_url":"https://api.github.com/users/mahinshaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mahinshaw/subscriptions","organizations_url":"https://api.github.com/users/mahinshaw/orgs","repos_url":"https://api.github.com/users/mahinshaw/repos","events_url":"https://api.github.com/users/mahinshaw/events{/privacy}","received_events_url":"https://api.github.com/users/mahinshaw/received_events","type":"User","site_admin":false},"created_at":"2015-07-13T21:08:50Z","updated_at":"2015-07-13T21:08:50Z","body":"Minor version bump should be okay, as long as the README states that minor versions might include breaking changes.\r\n\r\nJust to sum up what I understand as the current conflict:\r\n\r\n* A single namespace is the most desirable goal.  To do that, we need to integrate the transducers such that arity 1 checks to see if the param is a map or a collection, and dispatches from there.\r\n    * Pros: Cleaner API\r\n    * Cons: Arity 1 has overloaded functionality.  May be confusing.\r\n\r\n* Seperate namespaces - This aleviates the issue with arity overloading.  Implementation of the core functions would leverage the transducers via ```(sequence ...)```.\r\n    * Pros: no issues with arity overloading in core functions.\r\n    * Cons: a more cumbersome API.\r\n\r\nIt may be worth exploring the single namespace approach as noted above.  It really would be nice to have a single API.\r\n\r\nRegarding Clojurescript - From what I understand, the only platform differences would be the csv parsers, and the io.  Is that correct?"}}