कंप्यूटर विज्ञान में हम गणितीय कठोरता के साथ स्रोत-कोड का विश्लेषण और समझना चाहते हैं। यह पूरी तरह से निश्चित गुणों के साथ दिलचस्प गुणों (जैसे समाप्ति) को साबित करने का एकमात्र तरीका है। इसके लिए हमें हर निर्माण के लिए एक बहुत अच्छी तरह से परिभाषित अर्थ वाली भाषा की आवश्यकता है।
सिद्धांत रूप में यह एक अच्छी औपचारिक शब्दार्थ के साथ कोई भी भाषा हो सकती है । लेकिन चीजों को कम जटिल और त्रुटि के लिए कम प्रवण बनाने के लिए, ऐसी भाषा का उपयोग करना सबसे अच्छा है जो यथासंभव सरल है लेकिन फिर भी किसी भी कार्यक्रम को व्यक्त करने में सक्षम है (यानी ट्यूरिंग पूर्ण है )। अनिवार्य कोड के बारे में तर्क के लिए, ट्यूरिंग मशीनें हैं । लेकिन कार्यात्मक प्रोग्रामिंग के बारे में तर्क के लिए, -calculus है।λ
मूल -calculus एक कार्यात्मक प्रोग्रामिंग भाषा की तरह है, लेकिन बहुत सारे 'सामान' के साथ। यह महत्वपूर्ण नहीं है कि यह वास्तव में कार्यक्रमों को लिखने के लिए एक अच्छी भाषा हो, न ही यह एक कुशल भाषा हो। बस यह है कि यह सरल और अभिव्यंजक है। उदाहरण के लिए, हमें छोरों की आवश्यकता नहीं है, क्योंकि हम उन्हें पुनरावृत्ति के साथ अनुकरण कर सकते हैं। और हमें कई मापदंडों के साथ कार्यों की आवश्यकता नहीं है, क्योंकि हम उन्हें करी के साथ अनुकरण कर सकते हैं ।λ
अब, कुछ बिंदु पर आप उन निर्माणों के बारे में गुणों को सिद्ध करना चाह सकते हैं जो मूल (अप्रकाशित) -calculus का हिस्सा नहीं हैं । इसलिए कंप्यूटर वैज्ञानिकों ने इसे अलग-अलग दिशाओं में वर्षों से बढ़ाया है। उदाहरण के लिए, टाइप-सिस्टम के बारे में टाइप करने के लिए टाइप किए गए λ -calculi की बहुत सारी विविधताएं हैं ।λλ