में हैश कुंजी के रूप में स्ट्रिंग ऑब्जेक्ट का उपयोग करके मैं एक "शब्दकोश" प्रकार बनाने की कोशिश कर रहा हूं - यानी एक कुंजी के रूप में एक स्ट्रिंग के साथ हैश तालिका। क्या यह Lisp में संभव या बुद्धिमान है?सामान्य लिस्प
मैंने देखा है कि यह काम करता है के रूप में उम्मीद: करता
> (setq table (make-hash-table))
#<HASH-TABLE :TEST EQL size 0/60 #x91AFA46>
> (setf (gethash 1 table) "one")
"one"
> (gethash 1 table)
"one"
हालांकि, निम्नलिखित नहीं:
> (setq table (make-hash-table))
#<HASH-TABLE :TEST EQL size 0/60 #x91AFA0E>
> table
#<HASH-TABLE :TEST EQL size 0/60 #x91AFA0E>
> (setf (gethash "one" table) 1)
1
> (gethash "one" table)
NIL
NIL
जस्टिकल, सीएलएचएस सिर्फ एक उदाहरण के रूप में है। यदि यह स्पष्ट नहीं है, तो दस्तावेज़ीकरण को देखकर मदद मिल सकती है: http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_has.htm –
यदि आप केस-असंवेदनशील स्ट्रिंग हैशिंग चाहते हैं तो इसके बजाय EQUALP का उपयोग करें। – skypher
धन्यवाद दोस्तों। मैंने दस्तावेज़ों की जांच की थी, लेकिन मैंने वास्तव में उस विशेष भाग के लिए मेरे साथ कुछ भी जॉग करने के लिए कई समानता कार्यों पर पर्याप्त ध्यान नहीं दिया था। मैं (गलत) धारणा के तहत था कि "इसे केवल वही करना चाहिए जो मुझे चाहिए"। – Justicle