2012-03-04 6 views
15

क्लोजर में deftype, defprotocol, reify और extend तक सीमित प्रकारों के प्रतिनिधित्व के लिए कुछ रोचक विशेषताएं हैं।टाइपेड रैकेट में टाइपिंग सुविधाओं और क्लोजर में टाइप-जैसी सुविधाओं के बीच समानताएं और अंतर क्या हैं?

टाइप किए गए रैकेट में टाइपिंग सुविधाओं और क्लोजर में टाइप-जैसी सुविधाओं के बीच समानताएं और अंतर क्या हैं?

उत्तर

17

deftype और defprotocol क्लोजर में गतिशील व्यवहार को परिभाषित करता है। रैकेट में, हम struct या struct-property के साथ ऐसी चीजें करेंगे, हालांकि रैकेट में defprotocol की तरह कुछ भी नहीं है।

संपादित करें: रैकेट में अब generics है, जो क्लोजर प्रोटोकॉल की तरह हैं।

reify और extend, मुझे लगता है, रैकेट में make-struct-type के उपयोग के अनुरूप है, जो गतिशील रूप से नए संरचना प्रकार बनाता है।

टाइपेड रैकेट और इन सभी सुविधाओं के बीच बड़ा अंतर यह है कि टाइप किए गए रैकेट आपके प्रोग्राम स्थिर रूप से - इसे चलाने की कोशिश करने से पहले जांचता है। आप कभी भी टाइप किए गए रैकेट प्रोग्राम में गलत एक्सेसर लागू नहीं कर सकते हैं, या फ़ंक्शन के रूप में किसी संख्या का उपयोग नहीं कर सकते हैं। आप ऐसे प्रोग्राम को भी नहीं चला सकते जिसके बारे में कोई त्रुटि हो।

वर्तमान में, टाइप किए गए रैकेट की तरह क्लोजर की विशेषताएं एनोटेशन हैं जो प्रदर्शन के लिए उपयोग करती हैं।

संपादित करें: अब एम्ब्रोस बोनेयर-सार्जेंट द्वारा Typed Clojure है, जो प्रेरित है और टाइपेड रैकेट पर आधारित है।

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