Thanks.
Yeath,i know the defline macro,and it is the best way to define inline
function.I got your point,thanks.

2012/7/17 Aaron Cohen <aa...@assonance.org>

> On Mon, Jul 16, 2012 at 11:26 AM, dennis zhuang <killme2...@gmail.com>
> wrote:
> >
> > Yes, thank you for your reply,i total agree with you about why we need
> :inline form in meta map.
> > But my problem is that why clojure compiler could not use the body form
> as the :inline value automatically for us instead of writing a duplicate
> form? I think below codes is more suitable:
>
> > (defn pos?
> >   "Returns true if num is greater than zero, else false"
> >   {
> >    :inline true
> >    :added "1.0"}
> >   [x] (. clojure.lang.Numbers (isPos x)))
> >
> >
> > Then clojure compiler finds out that we set :inline to be true and
> captures the body form as the :inline value automatically,is it not better?
> >
> > If the function accepts different arguments arities, we can set
> :inline-arities value to make compiler captures the body form  which
> arguments count equals to :inline-arities value as :inline value.
> >
>
> As I said, that's precisely what definline does. As many things in
> clojure, the simple pieces are given and "easy" things can be built on
> top of them. I don't know precisely when in clojure.clj that "pos?" is
> defined, but if it is late enough that "definline" has been defined,
> it could be rewritten as:
>
> (definline pos?
>     "Returns true if num is greater than zero, else false"
>     {:added "1.0"}
>    [x] `(. clojure.lang.Numbers (isPos x)))
>
> Which is pretty much what you asked for, isn't it?
>
> The fact that it isn't written that way is either historical or
> because it needs to exist before definline does.
>
> --Aaron
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>



-- 
庄晓丹
Email:        killme2...@gmail.com xzhu...@avos.com
Site:           http://fnil.net
Twitter:      @killme2008

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to