मैं लिस्प में निम्नलिखित कार्यक्षमता के लिए हर जगह खोज की गई है, और कहीं मिल गया है:क्या मैं इसे लिस्प में कर सकता हूं?
एक सूची में कुछ के सूचकांक पाते हैं। उदाहरण:
(index-of item InThisList)
किसी सूची में किसी विशिष्ट स्थान पर कुछ स्थानांतरित करें। उदाहरण:
(replace item InThisList AtThisIndex) ;i think this can be done with 'setf'?
एक विशिष्ट इंडेक्स पर एक आइटम लौटाएं। उदाहरण:
(return InThisList ItemAtThisIndex)
इस बिंदु तक, मैं इसे अपने खुद के कार्यों के साथ faking किया गया है। मैं सोच रहा हूं कि क्या मैं सिर्फ अपने लिए और अधिक काम कर रहा हूं।
यह मैं कैसे संख्या 1 faking गया है:
(defun my-index (findMe mylist)
(let ((counter 0) (found 1))
(dolist (item mylist)
(cond
((eq item findMe) ;this works because 'eq' checks place in memory,
;and as long as 'findMe' was from the original list, this will work.
(setq found nil)
(found (incf counter))))
counter))
इसके अलावा, हम किसी सूची में तत्व को प्रतिस्थापित नहीं कर रहे हैं। हम पहले (आर -1) तत्वों की प्रतिलिपि बना रहे हैं और नए मान को आर में डाल रहे हैं, जहां यह सीडीआर (आर + 1) तत्व से जुड़ा हुआ है - चूंकि हम दृढ़ता से निपट रहे हैं। – nlucaroni