2009-12-05 12 views
6

निम्न स्वरूप की एक संरचना है:आम में एसोसिएशन लिस्प

(setq dist '(((1 1) 1) 
       ((0 2) 3) 
       ((1 2) 1) 
       ((2 3) 3) 
       ((3 5) 4))) 

वहाँ किसी भी समारोह है, जो अगर मैं फोन

(myf '(0 2)) 

मुझे

3 

या

दे सकता है
((0 2) 3) 

कुछ एक रिवर्स assoc

उत्तर

8

जैसे मैं यह देखने के लिए क्यों यह एक रिवर्स ASSOC कहा जाएगा असफल।

(assoc '(0 2) dist :test #'equal) 
> ((0 2) 3) 

यह ASSOC की तरह दिखता है, बशर्ते आप, परीक्षण समारोह बदल सकते हैं कि कुंजी के रूप में उपयोग की गई सूचियों को सही ढंग से जांच की जाती है, ठीक काम करता है।

+2

वैसे, यदि आप वास्तव में "रिवर्स" assoc चाहते हैं, यानी, जोड़ी सीडीआर मैचों में मिलती है, वहां RASSOC है। – Svante

संबंधित मुद्दे