在 2012年8月7日星期二UTC-4下午9时11分58秒,Warren Lynn写道:
>
>
> This construct is not very good. make-record is not first-class (It 
>> cannot be used as an argument to a function). 
>> Its first argument is not first-class (it has to be statically the 
>> name of a class). 
>>
>>
> Good point. I am not happy with my own version because it is a pure 
> run-time function with run-time dispatching all the time. What I am hoping 
> for is the compiler can be smart enough to just do compile time dispatch 
> for the static case, but still do run-time dispatching for dynamic cases. 
> So it will still be a first-class function. The only difference is the 
> compiler takes a short-cut for the static cases. The programmer should see 
> no difference. 
>  
>
>> It exposes an implementation detail to client code (the name of a class). 
>>
>>
> I agree that is true. But as I said before, that may not matter for many 
> cases (for me, that is the vast majority). I am willing to trade the 
> flexibility for better code organaization and readability. If flexibility 
> is all free, of course that will be ideal. But flexibility often comes with 
> a price, sometimes in terms of performance, sometimes in terms of code 
> readability and etc. One size fits all is too simplistic to me.  
>  
>
>

-- 
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