इसके मूल में, एक स्प्रेडशीट एक कार्यात्मक भाषा है जिसमें डायनामिक टाइपिंग और प्रत्येक फ़ंक्शन या मूल्य मैट्रिक्स में एक सेल के रूप में संदर्भित किया जा सकता है।
तरह बातें करने के बजाय भाग एक सेल में ही रखा गया है।(defn some-name ...)
some-name
यदि आप डायनेमिक रूप से अपडेट होने वाली फंक्शनल लैंग्वेज आइड (जैसे कि क्लोजर के लिए लाइटटेबल) में जाते हैं, तो आपको स्प्रेडशीट के समान ही अधिक कार्यक्षमता दिखाई देगी। एक मान को एक नाम से बांधें, एक फ़ंक्शन लिखें जो उस मान का उपयोग करता है, मान को बदलता है और फ़ंक्शन का आउटपुट तुरंत बदलता है। यह एक्सेल =A1 + B2
के स्थान पर लिखने जैसा कुछ करने जैसा है C3
।
इस प्रकार, कार्यात्मक प्रोग्रामर अक्सर स्प्रेडशीट को खिलौना कार्यक्रमों के रूप में लिखना पसंद करते हैं ... और शोध पत्रों का विषय भी। (हां, मुझे क्षमा करें, वे सभी ACM.org पेवॉल के पीछे हैं)
स्प्रेडशीट कार्यात्मक प्रोग्रामिंग
कार्यात्मक प्रोग्रामिंग समुदाय ने स्प्रेडशीट में कुछ रुचि दिखाई है, लेकिन आश्चर्यजनक रूप से किसी ने भी मानक स्प्रेडशीट बनाने पर विचार नहीं किया है, जैसे एक्सेल, एक मानक कार्यात्मक प्रोग्रामिंग भाषा, जैसे हास्केल के साथ काम करना। इस पत्र में, हम एक तरीका बताते हैं कि यह किया जा सकता है। हमारी आशा है कि ऐसा करने से, हम कार्यात्मक प्रोग्रामिंग को आज़माने के लिए स्प्रेडशीट प्रोग्रामर प्राप्त कर सकते हैं।
प्रपत्र / 3: स्प्रेडशीट प्रतिमान की सीमाओं का पता लगाने के लिए एक प्रथम-क्रम दृश्य भाषा
हालांकि कार्यात्मक प्रोग्रामिंग के अवरोधक कभी-कभी यह दावा करते हैं कि कार्यात्मक प्रोग्रामिंग बहुत मुश्किल या काउंटर-सहज ज्ञान युक्त अधिकांश प्रोग्रामर को समझने और उपयोग करने के लिए है, इसके विपरीत स्प्रेडशीट की लोकप्रियता को देखकर सबूत पाया जा सकता है। स्प्रेडशीट प्रतिमान, कार्यात्मक प्रोग्रामिंग प्रतिमान के पहले क्रम के सबसेट, को प्रोग्रामर और अंतिम उपयोगकर्ताओं दोनों के बीच व्यापक स्वीकृति मिली है। फिर भी, अधिकांश स्प्रेडशीट सिस्टम के साथ कई सीमाएँ हैं। इस पत्र में, हम उन भाषा विशेषताओं पर चर्चा करते हैं, जो पहले-क्रम, घोषणात्मक मूल्यांकन मॉडल से विचलित किए बिना इनमें से कई सीमाओं को समाप्त करती हैं।
फ़ंक्शन स्प्रेडशीट को लागू करना
स्प्रेडशीट के साथ अंत-उपयोगकर्ता विकास की एक बड़ी मात्रा में किया जाता है। स्प्रेडशीट रूपक आकर्षक है क्योंकि यह दृश्य है और इंटरैक्टिव प्रयोग को समायोजित करता है, लेकिन जैसा कि पेटन जोन्स, ब्लैकवेल और बर्नेट द्वारा देखा गया है, स्प्रेडशीट रूपक भी सबसे बुनियादी अमूर्तता को स्वीकार नहीं करता है: एक अभिव्यक्ति को नामांकित फ़ंक्शन में बदलना। इसलिए उन्होंने निर्दिष्ट इनपुट और आउटपुट कोशिकाओं के साथ एक कार्यपत्रक के संदर्भ में एक फ़ंक्शन को परिभाषित करने का एक तरीका प्रस्तावित किया; हम इसे फंक्शन शीट कहेंगे।
विकिपीडिया पर स्प्रेडशीट की शुरुआत कुछ संकेत देती है कि किसी को कैसे लागू किया जाए:
एक स्प्रेडशीट एक संवादात्मक कंप्यूटर अनुप्रयोग है जो संगठन और सारणीबद्ध रूप में डेटा के विश्लेषण के लिए है। स्प्रेडशीट को पेपर अकाउंटिंग वर्कशीट के कम्प्यूटरीकृत सिमुलेशन के रूप में विकसित किया गया। यह कार्यक्रम एक सरणी के सेल के रूप में प्रतिनिधित्व डेटा पर संचालित होता है, जो पंक्तियों और स्तंभों में व्यवस्थित होता है। सरणी का प्रत्येक सेल एक मॉडल-व्यू-कंट्रोलर तत्व है जिसमें संख्यात्मक या पाठ डेटा हो सकते हैं, या अन्य कोशिकाओं की सामग्री के आधार पर स्वचालित रूप से गणना और प्रदर्शित करने वाले सूत्रों के परिणाम हो सकते हैं।
जावा पुस्तकालयों में व्यक्त किए गए मॉडल-व्यू-कंट्रोलर प्रतिमान की रूपरेखा से इस पर निर्माण । लेखक एप्लेट्स का उल्लेख करता है (थोड़ा दिनांकित, यह '93 -'96 में लिखा गया था) और उसके वेब पेज का उल्लेख करता है जो http://csis.pace.edu/~bergin/Java/applets.htm (हाँ) में जाता है , एप्लेट्स) संबंधित स्प्रेडशीट कोड के लिए http://csis.pace.edu/~bergin/Java/Spips.pava
मैं बताऊंगा कि स्प्रेडशीट की संपूर्णता, इस एप्लेट में 570 नहीं है, जिसमें दस्तावेज़ीकरण सहित 570 लाइनें हैं।
कहा कि, भाषा पर निर्भर करता है, आप शायद यह सब एक विरल सरणी में सिर्फ समारोह संकेत के साथ कर सकते हैं।