मैं वर्तमान में हास्केल सीख रहा हूं और विश्वविद्यालय में कार्यात्मक प्रोग्रामिंग के बारे में एक सैद्धांतिक व्याख्यान में भाग ले रहा हूं।शुद्ध लैम्ब्डा कैलकुस - और फ़ंक्शन
मुझे पता है कि यह विशुद्ध रूप से सैद्धांतिक/शैक्षणिक सवाल यह है, लेकिन फिर भी मैं कैसे बस शुद्ध लैम्ब्डा पथरी के साथ विभिन्न सरल कार्यों को व्यक्त करने के दिलचस्पी है (अर्थात परिभाषित किसी भी स्थिरांक के बिना)।
मेरा कुछ व्याख्यान सामग्री जैसे बूलियन मूल्यों को परिभाषित:
सच = \ xy.x
झूठी = \ xy.y
(\ दर्शाने लैम्ब्डा प्रतीक)
यदि इन्हें इन चयनकर्ता कार्यों की तरह परिभाषित किया गया है, तो if-con प्रत्यर्पण आसानी से परिभाषित किया जा सकता है:
तो = \ x.x
अब, मैं तार्किक "और" समारोह के लिए कुछ संक्षिप्त रूप के साथ आने की कोशिश कर रहा हूँ। मेरा पहला अनुमान है:।
और = \ xy {( यदि x) [(तो वाई) सचझूठी] झूठी}
तो मूल रूप से यह लैम्ब्डा फ़ंक्शन 2 तर्क प्राप्त करेगा जहां दोनों को सत्य/गलत जैसा टाइप करना होगा। यदि मैं तर्क तालिका के सभी 4 संयोजनों के साथ विभिन्न बीटा-कटौती करता हूं तो मुझे सही परिणाम मिलते हैं।
फिर भी यह फ़ंक्शन थोड़ा बदसूरत दिखता है और मैं इसे और अधिक सुरुचिपूर्ण बनाने के बारे में सोच रहा हूं। यहां कोई प्रस्ताव है?
शायद संबंधित: http://stackoverflow.com/questions/2398503/query-on-booleans-in-lambda-calculus –
@ एई ++, esp। असाधारण उत्तर http://stackoverflow.com/questions/2398503/query-on-booleans-in-lambda-calculus/2399127#2399127 वहां। –