क्या पैटर्न कैलकुलस भाषाओं में एक कदम आगे का प्रतिनिधित्व करता है या हम सिर्फ LISP में वापस जा रहे हैं?


11

बैरी जे अपनी पुस्तक में कुछ साहसिक दावे करते हैं - मूल रूप से यह कहते हुए कि, एक कार्यक्रम के मूल में, सब कुछ या तो परमाणु या रचना है। फिर चीजों को आसानी से फ़िल्टर किया जा सकता है, फ़िल्टर किया जा सकता है, अपडेट किया जा सकता है, बस इस रचना संबंध को नेविगेट करके।

क्या यह कंप्यूटर भाषाओं के लिए कंप्यूटर विज्ञान में एक नया फ्रंटियर है - या क्या हम अभी एलआईएसपी में वापस जा रहे हैं?


13
लिस्प के लिए वापस जाना एक कदम आगे होगा।
शेन

4
यह एक तेज परिभाषित प्रश्न नहीं है: इसे सामुदायिक विकि बनाया जाना चाहिए।
चार्ल्स स्टीवर्ट

@Shane से सहमत हैं, लेकिन लगता है कि इसे प्रकार और आधुनिक पुस्तकालयों का एक सेट चाहिए
hawkeye

जवाबों:


6

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


6

मैं बैरी जे के हालिया काम से परिचित नहीं हूं, लेकिन उनके पुराने काम में वे चीजें शामिल हैं जो आप लिस्प में नहीं कर सकते , क्योंकि प्रकार अतिरिक्त जानकारी देते हैं।

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

अब मिक्स में टाइप में फेंक दें। किसी सूची का आकार उसकी लंबाई होगी। अब परमाणुओं की सूचियों की सूची का आकार क्या है? यदि आप इस डेटा संरचना को एक सूची के रूप में मानते हैं (जिनके तत्व परमाणुओं की सूची होते हैं), तो उत्तर सूची की लंबाई है। यदि आप इस डेटा संरचना को उन परमाणुओं से युक्त मानते हैं जो सूचियों की सूची में संग्रहीत किए जाते हैं, तो इसका उत्तर तत्व सूचियों की लंबाई का योग है।

प्रकार आपको कच्चे डेटा के इन दो विचारों (आकार) के बीच अंतर करने की अनुमति देते हैं। आपको एक प्रकार की प्रणाली की आवश्यकता होती है, जो आपको (सूची) (सूची एटम) और (सूची सूची) (एटम) के बीच भेदभाव करने देती है। इस भेद का सबसे आम कार्यान्वयन प्रकार की कक्षाओं के साथ होता है (जैसा कि हास्केल में)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.