भंडारण के सभी प्रकारों में एक बिंदु पर कुछ संग्रहीत करना और इसे बाद में पुनर्प्राप्त करना शामिल है। केवल एक ऑपरेशन में ऐसा करने के लिए, आपको या तो भंडारण करना चाहिए या स्वचालित रूप से पुनर्प्राप्त करना चाहिए, और दूसरे ऑपरेशन में संग्रहीत मूल्य की स्थिति निर्दिष्ट करनी चाहिए।
अर्थात्, स्पष्ट भंडारण के लिए, आप इस ऑपरेशन से पहले nth परिकलित मान को पुनः प्राप्त करने के लिए एक ऑपरेटर बना सकते हैं, या वर्तमान मान को वापस n संचालन के लिए रख सकते हैं। वैकल्पिक रूप से, आप प्रोग्राम की शुरुआत से पूर्ण स्थिति का उपयोग कर सकते हैं, या अधिक काम कर सकते हैं जैसे कि कुछ ऑपरेशनों के बाद स्वचालित रूप से कुछ तत्वों को निकालना (जैसे स्टैक में)। आप इन स्वचालित कार्रवाइयों के साथ या बिना स्टोरेज की विभिन्न प्रतियों से पुनर्प्राप्त कर कई ऑपरेटर भी बना सकते हैं। और आपको संचालन में निर्दिष्ट करने के लिए आवश्यक अधिकतम संख्या बनाने की कोशिश करनी चाहिए, ताकि आप प्रत्येक संख्या के लिए एक ऑपरेटर प्रदान कर सकें।
लेकिन ज्यादातर मामलों में, आपको एक ऑपरेटर की भी आवश्यकता नहीं होती है और भाषा इस तरह से काम करेगी। यही कारण है कि जब आपको ढेर या कतारों जैसे अधिक मानकीकृत मॉडल पर विचार करने की आवश्यकता होती है। अब तक का सबसे सफल टैसिट प्रोग्रामिंग प्रतीत हुआ, जिसमें सीधे भंडारण का उल्लेख नहीं है।
यदि आप इस तरह के एक नए मॉडल को डिजाइन करना चाहते हैं, तो आप मूल्यांकन को एक डैग के रूप में विस्तारित करने का प्रयास कर सकते हैं, और यदि कुछ और निर्दिष्ट नहीं है तो डिफ़ॉल्ट डैग के बारे में सोचने का प्रयास करें। सबसे अधिक संभावना है, डिफ़ॉल्ट सिर्फ एक पेड़ है, सिवाय इसके कि कई पत्तियों को एक ही इनपुट से जोड़ा जा सकता है। आप उदाहरण के लिए एक संतुलित पेड़ के लिए एक कतार का उपयोग कर सकते हैं, या एक गहरे पेड़ के लिए एक स्टैक जहां पत्ते ज्यादातर स्थिर होते हैं, या गहरे पेड़ के लिए जेली की तरह कुछ होता है जहां पत्ते ज्यादातर इनपुट की प्रतियां होते हैं।
लेकिन ध्यान दें, आप एक बाइनरी ट्री के आकार को प्रति ऑपरेटर केवल 2 बिट्स में एन्कोड कर सकते हैं। इसलिए, यदि आपकी भाषा में 64 से कम ऑपरेटर हैं, तो आप वास्तव में पारंपरिक मॉडलों को अनदेखा कर सकते हैं और बस पूरे पेड़ को स्पेयर बिट्स में कॉल कर सकते हैं (उन्हें Comb_parent और bottom_leaf झंडे कहते हैं)। यहां तक कि अगर अधिक ऑपरेटर हैं, तो आप इसे बदलने के लिए एक अच्छा डिफ़ॉल्ट (जैसे जेली का मॉडल) और 3 संशोधक बना सकते हैं।
आप सुविधा के लिए निहित और स्पष्ट भंडारण के लिए एक ही मॉडल का उपयोग कर सकते हैं, लेकिन आपके पास नहीं है। उदाहरण के लिए, आप निहित भंडारण के लिए एक स्टैक का उपयोग कर सकते हैं, लेकिन स्पष्ट भंडारण में तत्वों को पॉप न करें (या निहित एक के अलावा अन्य स्पष्ट भंडारण में)। यह संभव है कि इसे अंतिम दस्तावेज़ में स्टैक नहीं कहा जाएगा, लेकिन आपको यह विचार मिलता है।
संदर्भ के लिए, एक बाइनरी ट्री के सही एन्कोडिंग का आकार कैटलन संख्याओं का लघुगणक है । और एक "बाइनरी" डैग के सही एन्कोडिंग का आकार A082161 का लघुगणक है , लेकिन स्पष्ट रूप से अव्यावहारिक है। यह अलग तर्क के साथ एक ऑपरेटर मानता है दो अलग-अलग ऑपरेटरों को आदेश देता है, जब यह नहीं होता है तो एक और बिट जोड़ता है।
कभी-कभी आप अभी भी छोरों के लिए चर चाहते हो सकते हैं। अन्य तरीकों से छोरों को फिर से लिखना संभव हो सकता है। लेकिन अगर आपको वास्तव में इसकी आवश्यकता है, तो चर को परिभाषित करने के लिए एक नाम के अलावा 1-बाइट निर्माण का उपयोग न करें। जब तक आप केवल पूर्व-निर्धारित मूल्यों का उपयोग नहीं कर रहे हैं, यह आमतौर पर 1-बिट ध्वज का उपयोग करने के लिए अधिक कुशल है यह निर्दिष्ट करने के लिए कि आप इस चर को पढ़ रहे हैं या लिख रहे हैं।