2010-01-12 18 views
19

कल, रिच मास्टर में Clojure की 'नए' शाखा खींच लिया। अब हम सुंदरता को अपनाना चाहते हैं जो डेफटाइप और डिफप्रोटोकॉल है। बेशक, मैं, हास्केल से आ रही है, बहुत जैसे मैं हास्केल में होगा, जो लगभग एक throwaway टपल से कम सब कुछ के लिए किया जाएगा प्रकार को परिभाषित करने के लिए परीक्षा रहा हूँ, लेकिन मैं यह है कि Clojure दुनिया में तरह काम करता है नहीं लगता है;)। क्लोजर के लिए सामान्य गलतियों के धागे में, एक लड़के ने उल्लेख किया कि अतिउद्देश्यीय structs एक गलती थी जब उसने पहली बार ओओपी से आने शुरू किया था। चूंकि डेफटाइप structs के समान दिखते हैं, इसलिए मैं सोच रहा था कि वही बात वहां लागू होती है।मुझे क्लोजर में डेफटाइप का उपयोग कब करना चाहिए?

तो, मेरे सवाल यह है: जब यह एक अच्छा समय deftype उपयोग करने के लिए है?

उत्तर

13

एक क्षेत्र deftype चमकता प्रदर्शन है। प्रोटोकॉल के तरीके एक deftype पर बहुत तेज हैं। इसके अलावा डेफटाइप में आदिम फ़ील्ड हो सकते हैं, इसलिए नंबरों को क्रंच करते समय अब ​​कोई मुक्केबाजी नहीं है ...

अन्य क्षेत्र जावा इंटरऑपरेक्शन हो सकता है, क्योंकि डेफटाइप इंटरफेस को कार्यान्वित कर सकता है (और यदि एओटी संकलित) नामित वर्ग है।

आम तौर पर प्रोटोकॉल के साथ अवशोषण को परिभाषित करने और उन्हें डिफाईइप के साथ लागू करने का मूल विचार है। http://www.assembla.com/wiki/show/clojure/Datatypes

+0

तो यह एक तरह से हास्केल की तरह हो सकता है, की तरह अच्छी तरह से डेटाटाइप्स में है कि प्रोटोकॉल typeclasses और डेटाटाइप्स की तरह कर रहे हैं ...:

रिच उसके यहाँ प्रेरणा का विवरण है। : p – Rayne

संबंधित मुद्दे