मैं क्लिसप का उपयोग कर रहा हूं और मुझे आश्चर्य है कि क्या कोई लाइब्रेरी है जो nthcdr के सेटफेबल संस्करण के साथ है जिसका मैं उपयोग कर सकता हूं। जब n 0 है, हालांकिक्या एक सेट करने योग्य nthcdr कार्यान्वयन मौजूद है?
7
A
उत्तर
5
आप के साथ चारों ओर हैक कर सकते हैं:
(let ((lst (list 1 2 3 4))
(n 2))
(setf (cdr (nthcdr (1- n) lst)) '(5 6 7))
l)
> (1 2 5 6 7)
या यह के लिए अपने स्वयं के setf को परिभाषित:
;; !!warning!! only an example, lots of nasty edge cases
(defsetf nthcdr (n lst) (new-val)
`(setf (cdr (nthcdr (1- ,n) ,lst)) ,new-val))
मैं क्यों nthcdr एक setf परिभाषित नहीं है पता नहीं है। यहां तक कि Alexandria अंतिम के लिए setf को परिभाषित करने लगता है, लेकिन nthcdr नहीं।
पीएस। मैं आपके कोड में एक खराब गंध के रूप में एक nthcdr सेट करने के लिए चाहते हैं का इलाज करेंगे।
1
(defsetf my-nthcdr (n list) (store)
(let ((tmp (gensym)))
`(let ((,tmp (nthcdr (1- ,n) ,list)))
(rplacd ,tmp ,store)
(cdr ,tmp))))
काम करता है नहीं, तो आप यह काम जब सूची एक प्रतीक है कर सकता है, पता चल सके कि एन macroexpansion समय पर शून्य या तो है, लेकिन फिर यह तभी काम करता है एन एक संख्या है, या विस्तारित कोड में चेक सहित।
संबंधित मुद्दे
- 1. एक स्विंग फिल्टर करने योग्य जेएलआईस्ट घटक मौजूद है?
- 2. जावा में एक हैंडलबर्स.जेएस कार्यान्वयन मौजूद है?
- 3. क्या एक लिबसी मौजूद है?
- 4. setImageResource बनाम सेट करने योग्य
- 5. GLKView सेट करने योग्य गुण
- 6. सेट करने योग्य अस्पष्टता सेट करें
- 7. सूची कार्यान्वयन जो सेट एक सूची (अनुक्रम) दोनों है?
- 8. क्या आशावादी लॉक-फ्री फीफो कतार कार्यान्वयन मौजूद है?
- 9. सीएसएस: क्या एक छुपे ऑब्जेक्ट क्लिक करने योग्य है?
- 10. क्या सी # में एक Sizzle/jQuery चयनकर्ता कार्यान्वयन है?
- 11. क्या एक आर संकलक मौजूद है?
- 12. क्या एक मनोरंजक गाइड मौजूद है?
- 13. "प्लग करने योग्य" एपीआई क्या है?
- 14. प्रोग्राम करने योग्य रूप से DrawableLeft सेट करना संभव है?
- 15. क्या Google क्रोम एम्बेड करने योग्य है?
- 16. सॉर्ट करने योग्य और ड्रॉप करने योग्य, ड्रॉप करने योग्य नहीं है, जब डोम करता है?
- 17. क्या एडा का एक मुफ्त कार्यान्वयन है?
- 18. क्या एक .NET CQL पार्सर मौजूद है?
- 19. कंक्रीट कार्यान्वयन क्या है?
- 20. JQuery क्रमित करने योग्य सेट एक सूचकांक करने के लिए आइटम को प्रोग्राम के
- 21. क्या एक अद्यतन 'vimtutor' मौजूद है?
- 22. क्या एक जावास्क्रिप्ट योग्य एफ़टीपी अपलोड जावा/फ्लैश ऐप्पल मौजूद है?
- 23. प्रोग्राम करने योग्य कैन नोड्स के साथ एक बस बस अनुकरण करने के लिए एक ओपन सोर्स टूल मौजूद है?
- 24. क्या कोई कतार (प्राथमिकता क्यूई) कार्यान्वयन है जो एक सेट भी है?
- 25. jQuery सॉर्ट करने योग्य, ड्रॉप करने योग्य और खींचने योग्य एक साथ काम करने के लिए
- 26. एक स्क्रोल करने योग्य डीआईवी
- 27. जावा में मौजूद इंटरफेस का सी # "स्पष्ट कार्यान्वयन" है?
- 28. क्या यह एक योग्य सॉफ्टवेयर डिज़ाइन है?
- 29. एक डाउनलोड करने योग्य उत्पाद
- 30. एक डाउनलोड करने योग्य फ़ाइल
यह एक बुरी गंध क्यों है? विशेष रूप से जब आप यह इंगित करते हैं कि कोई सेटफेबल nthcdr परिभाषित नहीं करने का कोई कारण नहीं है। – Paralife
कारण यह है कि मैं चाहता हूं कि मैं एक आईडी तत्व के साथ एक लिंग के प्रत्येक नोड को इंजेक्ट करना चाहता हूं और उसी समय सेक्स न पेड़ को घुमाने के दौरान प्रत्येक नोड को हैश-टेबल में स्टोर करता हूं। तो यदि सजावट जगह में नहीं होती है, तो हैश-टेबल में मान सजाए गए सबनोड – Paralife
को नहीं देखते हैं कि आम तौर पर सामान्य लिस्प में यह परिभाषित नहीं होता है कि जब आप शाब्दिक डेटा संशोधित करते हैं तो क्या होता है। –