On 11.02.2009, at 18:18, Perry Trolard wrote:
> In any case, I vote for approaching Konrad Hinsen about putting this
> in clojure.contrib.macros when a naming convention is agreed on.
When I started clojure.contrib.macros, I intended it as a repository
for everybody's small macros that don't have any other obvious place.
So I don't mind anyone on the clojure.contrib group adding whatever
they seem fit.
BTW, I completely agree about the utility of the pipe macro, though I
can't make up my mind about which syntax I would prefer. I remember
that Paul Graham discusses such a macro in On Lisp, using "it" as the
parameter, but I forgot what is macro is called.
I have a similar operation in my monad library, which is called m-
chain. It expects a list of monadic operations that are functions of
one argument, the result being again a function of one argument
representing the composite operation. Using this operation in the
identity monad would yield something quite close to the pipe macro
being discussed, but as a function. Example:
(def my-pipe
(with-monad id
(m-chain #(filter odd? %) #(map inc %)))
(my-pipe (range 10))
The advantage of such an approach is that there is no new syntax
rule: the parameter placeholder is the well-known %. Another
advantage is that it can be written as a function. Of course, the
drawback is that all those functions cause a run-time overhead. Plus
a macro makes for shorter syntax, which is part of its purpose.
As you can see, I am fully undecided :-)
Konrad.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---