You can find this functionality in the Swiss Arrows library
here: https://github.com/rplevy/swiss-arrows
My first thought was that using the % symbol seems cleaner than the <> of
Swiss Arrows. Thinking about it though, wouldn't overloading the % create
trouble when you do want to use the literal form of an anonymous function
within a %> clause?
On Saturday, November 15, 2014 2:55:51 PM UTC+1, Krzysiek Herod wrote:
>
> Guys, what do you think about new thread macro (I would call it thread-any
> and represent it as "%>"), that would require you to always specify the
> position of the argument you want to pass to the function?
>
> This code:
>
> (defn csv-line->sql-line [table, line]
> (-> line
> (str " ")
> (str/split separator)
> (#(map csv-field->sql-field %))
> (#(str/join ", " %))
> (str/replace strings-wrapper "\"")
> (#(str "INSERT INTO ", table, " VALUES(" % ");"))))
>
> would become:
>
> (defn csv-line->sql-line [table, line]
> (%> line
> (str % " ")
> (str/split % separator)
> (map csv-field->sql-field %)
> (str/join ", " %)
> (str/replace strings-wrapper % "\"")
> (str "INSERT INTO ", table, " VALUES(" % ");")))
>
> Reasoning:
> - there are functions that are "thread-first fiendly", and other that are
> "thread-last friendly", by using thread-in you don't have to redefine
> functions only to change the order of the attributes
> - I find it easier to follow execution chain if the argument is passed
> explicitely
>
> PS. I'm a clojure newbie, still in the process of learning basics. For
> example I'm not sure how to implement such macro yet, so if you find
> something obviously wrong, or missing in my suggestion, please let me know.
> I'll be super happy to read about alternative solutions to achieve similar
> goal.
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.