मैं बैरी जे के हालिया काम से परिचित नहीं हूं, लेकिन उनके पुराने काम में वे चीजें शामिल हैं जो आप लिस्प में नहीं कर सकते , क्योंकि प्रकार अतिरिक्त जानकारी देते हैं।
उदाहरण के लिए, मान लें कि आप एक लिस्प डेटा संरचना के आकार को परिभाषित करना चाहते हैं। यह परमाणु के लिए 1 है, और n परमाणुओं की सूची के लिए n है, और अधिक सामान्यतः आकार (x) + आकार (y) के लिए (cons x y)
।
अब मिक्स में टाइप में फेंक दें। किसी सूची का आकार उसकी लंबाई होगी। अब परमाणुओं की सूचियों की सूची का आकार क्या है? यदि आप इस डेटा संरचना को एक सूची के रूप में मानते हैं (जिनके तत्व परमाणुओं की सूची होते हैं), तो उत्तर सूची की लंबाई है। यदि आप इस डेटा संरचना को उन परमाणुओं से युक्त मानते हैं जो सूचियों की सूची में संग्रहीत किए जाते हैं, तो इसका उत्तर तत्व सूचियों की लंबाई का योग है।
प्रकार आपको कच्चे डेटा के इन दो विचारों (आकार) के बीच अंतर करने की अनुमति देते हैं। आपको एक प्रकार की प्रणाली की आवश्यकता होती है, जो आपको (सूची) (सूची एटम) और (सूची सूची) (एटम) के बीच भेदभाव करने देती है। इस भेद का सबसे आम कार्यान्वयन प्रकार की कक्षाओं के साथ होता है (जैसा कि हास्केल में)।