{"action":"created","issue":{"url":"https://api.github.com/repos/elves/elvish/issues/17","labels_url":"https://api.github.com/repos/elves/elvish/issues/17/labels{/name}","comments_url":"https://api.github.com/repos/elves/elvish/issues/17/comments","events_url":"https://api.github.com/repos/elves/elvish/issues/17/events","html_url":"https://github.com/elves/elvish/issues/17","id":38827270,"number":17,"title":"Clojure already has pipelines, FYI","user":{"login":"roryokane","id":79168,"avatar_url":"https://avatars.githubusercontent.com/u/79168?v=3","gravatar_id":"","url":"https://api.github.com/users/roryokane","html_url":"https://github.com/roryokane","followers_url":"https://api.github.com/users/roryokane/followers","following_url":"https://api.github.com/users/roryokane/following{/other_user}","gists_url":"https://api.github.com/users/roryokane/gists{/gist_id}","starred_url":"https://api.github.com/users/roryokane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roryokane/subscriptions","organizations_url":"https://api.github.com/users/roryokane/orgs","repos_url":"https://api.github.com/users/roryokane/repos","events_url":"https://api.github.com/users/roryokane/events{/privacy}","received_events_url":"https://api.github.com/users/roryokane/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2014-07-26T22:05:15Z","updated_at":"2015-01-26T20:34:06Z","closed_at":"2015-01-26T20:34:06Z","body":"Clojure actually does have a way to avoid the reverse-order problem with Lisps that you lament in the README. Here is another way of writing your example Clojure code from [the end of the README](https://github.com/xiaq/elvish#appendix-a):\r\n\r\n```clojure\r\n(require ['clojure.string :refer '(upper-case)])\r\n(def strs '(\"aha\" \"LOLaha\" \"hahaLOL\" \"hum?\"))\r\n(def lols (->> strs\r\n               (filter #(re-find #\"LOL\" %))\r\n               (map upper-case)\r\n               sort))\r\n```\r\n\r\nAs you can see, the functions are written in the order they are applied, by using the [`->>` macro](http://grimoire.arrdem.com/1.6.0/clojure.core/DASH_GT_GT/) (similar to the [`->` \"thread\" macro](http://grimoire.arrdem.com/1.6.0/clojure.core/DASH_GT/)). I don't know enough about Clojure to say whether use of that macro is idiomatic or not, but Clojure does support it. You should note it as an alternative in your README.\r\n\r\nSince fixing the problems with Lisps' pipelining seems to be one of the goals of your shell, you should consider Clojure's approach as an option."},"comment":{"url":"https://api.github.com/repos/elves/elvish/issues/comments/71532747","html_url":"https://github.com/elves/elvish/issues/17#issuecomment-71532747","issue_url":"https://api.github.com/repos/elves/elvish/issues/17","id":71532747,"user":{"login":"xiaq","id":582021,"avatar_url":"https://avatars.githubusercontent.com/u/582021?v=3","gravatar_id":"","url":"https://api.github.com/users/xiaq","html_url":"https://github.com/xiaq","followers_url":"https://api.github.com/users/xiaq/followers","following_url":"https://api.github.com/users/xiaq/following{/other_user}","gists_url":"https://api.github.com/users/xiaq/gists{/gist_id}","starred_url":"https://api.github.com/users/xiaq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiaq/subscriptions","organizations_url":"https://api.github.com/users/xiaq/orgs","repos_url":"https://api.github.com/users/xiaq/repos","events_url":"https://api.github.com/users/xiaq/events{/privacy}","received_events_url":"https://api.github.com/users/xiaq/received_events","type":"User","site_admin":false},"created_at":"2015-01-26T20:34:06Z","updated_at":"2015-01-26T20:34:06Z","body":"Due credit is given to the `->` and `->>` constructs in the latest version of README."}}