मैं हास्केल में निम्नलिखित समारोह:क्या हास्केल में कोई मूल्य ज्ञापन करने का कोई तरीका है?
memdb = -- load the contents of a database into memory as a Map
और फिर मैं निम्न पंक्ति है:
map (\x -> memdb ! x) values
मैं केवल एक बार मानचित्र उत्पन्न करने के लिए memdb चाहते हैं, के बजाय map
के हर यात्रा पर । मैं कुछ इस तरह का उपयोग कर इसे कर सकता है:
make_memdb = -- equivalent to memdb in previous example
memdb <- make_memdb
map (\x -> memdb ! x) values
लेकिन इसका मतलब यह है कि मैं हर कार्य यह का उपयोग करता है करने के लिए memdb
पारित करने के लिए होगा। क्या कोई तरीका है:
ए। प्रत्येक बार इसे memdb
पुन: गणना करने से बचें जब इसे OR
बी कहा जाता है। make_memdb
में बनाए गए मान को निरंतर के रूप में सहेजें ताकि मैं इसे उपयोग करने वाले प्रत्येक फ़ंक्शन में इसे पारित करने से बच सकूं?
संभव डुप्लिकेट हास्केल?] (Http://stackoverflow.com/questions/141650/how-do-you-make-a-generic-memoize-function-in-haskell) –
@ क्रेग स्टंटज़: मैंने उस प्रश्न के माध्यम से पढ़ा था मेरा पोस्ट करने से पहले। उन उत्तरों को मुझे कैसे प्राप्त करने में मदद मिलेगी। या बी। ? –
@ क्रेग: शीर्षक के बावजूद, यह प्रश्न वास्तव में शब्द की सामान्य समझ में ज्ञापन के बारे में नहीं है। यह उस प्रश्न का डुप्लिकेट नहीं है। – hammar