आप इसमें प्रोग्राम करें! चर्च के आवासों पर एक नज़र डालें । आप देख सकते हैं कि सभी अंकगणित कितना सुंदर प्रदर्शन कर सकते हैं जो संभवतः आपको समझाए कि यह अत्यंत शक्तिशाली है। मैं हालांकि सूचियों के संचालन को देखना पसंद करता हूं। आप किसी फ़ंक्शन के संदर्भ में किसी भी डेटा संरचना को परिभाषित कर सकते हैं जो उस पर सबसे महत्वपूर्ण ऑपरेशन करता है।
उदाहरण के लिए किसी सूची का एन्कोडिंग फोल्ड फंक्शन है जो उस पर फोल्ड करता है। ध्यान दें कि यह चर्च की एन्कोडिंग नहीं है, लेकिन एक मुझे पर्सी के प्रकार और प्रोग्रामिंग भाषाओं से मिली है। चर्च की जोड़ी एनकोडिंग हमें पुनरावृत्ति नहीं देती है हमें इसे किसी प्रकार के पुनरावर्ती कॉम्बिनेटर के साथ अपने आप में वापस जोड़ना होगा।
इसलिए एक सूची में दो तर्क होते हैं, तह करने के लिए एक फ़ंक्शन और कुछ बिंदु पर गुना में प्लग करने के लिए एक प्रारंभिक मूल्य।
cons x xs = lam f. lam a. f x (xs f a)
nil = lam f. lam a. a
अब हम एक जोड़ दिए गए फ़ंक्शन को परिभाषित कर सकते हैं (ऊपर से चर्च के एन्कोडिंग देखें)
sum xs = xs add 0
हम और अधिक कर सकते हैं और एक मानचित्र फ़ंक्शन को परिभाषित कर सकते हैं
consApply f x xs = cons (f x) xs
map f xs = xs (consApply f) nil
यदि आप अभी भी आश्वस्त नहीं हैं कि यहाँ गणना चल रही है और यह सुनिश्चित करना चाहते हैं कि आप कोई संगणना कर सकते हैं, तो निश्चित बिंदु कॉम्बिनेटर की जाँच करें । यह कभी-कभी सोचने के लिए मेरे सिर को थोड़ा दर्द देता है, लेकिन मुझे यकीन नहीं है कि मैं इसे सहज ज्ञान युक्त कहूंगा लेकिन अगर आप मैन्युअल रूप से कुछ तर्कों के साथ इसका मूल्यांकन करते हैं तो आप देख सकते हैं कि क्या चल रहा है।