क्या क्लोजर किसी दिए गए अनुक्रम में उप-अनुक्रम की स्थिति खोजने के लिए कोई अंतर्निहित तरीका प्रदान करता है?अनुक्रम में क्लोजर उप-अनुक्रम स्थिति
उत्तर
क्लोजर आसान Java Interop के लिए एक अंतर्निहित तरीका प्रदान करता है।
(java.util.Collections/indexOfSubList '(a b c 5 6 :foo g h) '(5 6 :foo))
;=> 3
एक अनुक्रम एक विवेकाधिकार नहीं है, एक विवेक नहीं है। कुछ विवेकाधिकार जिन्हें आप अनुक्रम अबास्ट्रक्शन के माध्यम से उपयोग कर सकते हैं, बाद में (स्ट्रिंग्स और जावा संग्रह, उदाहरण के लिए) की स्थिति को खोजने का एक तरीका है, लेकिन सामान्य रूप से अनुक्रम नहीं होते हैं, क्योंकि अंतर्निहित विवेकाधिकार में इंडेक्स नहीं होना चाहिए ।
हालांकि आप क्या कर सकते हैं, तत्व पहचान और एक अनुक्रमणिका फ़ंक्शन का एक मिश्रण बनाते हैं। map-indexed पर एक नज़र डालें।
यहां एक निष्पक्ष कार्यान्वयन है जो क्रमशः अनुक्रम में (सभी) की स्थिति को स्थिति में पायेगा। बस पहले का उपयोग करें या 1 लेने के लिए केवल एक ही लगता है:
(defn find-pos
[sq sub]
(->>
(partition (count sub) 1 sq)
(map-indexed vector)
(filter #(= (second %) sub))
(map first)))
=> (find-pos [:a :b \c 5 6 :foo \g :h]
[\c 5 6 :foo])
(2)
=> (find-pos "the quick brown fox"
(seq "quick"))
(4)
लो परवाह है कि सूचकांक आधारित एल्गोरिदम आम तौर पर कुछ आप एक कार्यात्मक भाषा में करना होगा नहीं हैं। जब तक कि अच्छे नतीजे न हों तो आपको अंतिम परिणाम में इंडेक्स की आवश्यकता नहीं है, इंडेक्स लुकअप का शानदार उपयोग कोड गंध माना जाता है।
- 1. आलसी क्लोजर अनुक्रम
- 2. क्लोजर: अनुक्रम वापस वेक्टर
- 3. क्लोजर आलसी अनुक्रम जो वेक्टर
- 4. क्लोजर में अनुक्रम पर गणना करें?
- 5. क्लोजर प्राइम नंबर आलसी अनुक्रम
- 6. अनुक्रम के मामले में स्थिति क्या है?
- 7. तारों के अनुक्रम को पूर्णांक (क्लोजर)
- 8. अनुक्रम परिवर्तन पर Idiomatic क्लोजर प्रश्न
- 9. क्लोजर में अनुक्रम को एक बाइट [] में कैसे परिवर्तित करें?
- 10. क्लोजर में एक खाली सूची अनंत नल का अनुक्रम है?
- 11. क्लोजर में अशुद्ध कार्यों के अनुक्रम का मूल्यांकन कैसे करें?
- 12. क्या 'गिनती' क्लोजर में आलसी अनुक्रम का एहसास है?
- 13. अनुक्रम आरेख पर "अगर" स्थिति कैसे दिखाएं?
- 14. क्लोजर
- 15. अनुक्रम
- 16. क्लोजर
- 17. क्लोजर
- 18. क्लोजर
- 19. क्लोजर
- 20. लंबे अनुक्रम में एक अनुक्रम ढूँढना
- 21. क्लोजर
- 22. क्लोजर
- 23. क्लोजर
- 24. अनुक्रम अनपॅकिंग अनुक्रम है?
- 25. क्लोजर:
- 26. क्लोजर (हास्केल में)
- 27. अनुक्रम
- 28. अनुक्रम
- 29. अनुक्रम
- 30. अनुक्रम
आपके उत्तर के लिए धन्यवाद। अंत में मैं इसका उपयोग करूंगा, लेकिन मैं आमतौर पर 'इंटरफ़ेस' कोड से स्पष्ट रूप से जावा इंटरऑप को कॉल करने से बचने की कोशिश कर रहा हूं, क्योंकि मुझे लगता है कि यह थोड़ा वर्बोज़ है। फिर भी धन्यवाद। –
हालांकि यह काम कर सकता है, ध्यान रखें कि संग्रह एक अनुक्रम नहीं है। – NielsK
@NielsK दार्शनिक विचारों को एक तरफ, मुझे लगता है कि आपको 'java.util.List'' seq' के सुपरक्लास के रूप में मिलेगा और जावा विधि 'java.util.List' की जोड़ी पर है। इस प्रकार, आप आलसी अनुक्रमों पर इसका उपयोग कर सकते हैं (केवल एक अनंत का मूल्यांकन न करने के लिए सावधान रहें) '(java.util.Collections/indexOfSubList (रेंज 10) (रेंज 3 7)); => 3', वैक्टर, क्रमबद्ध- मानचित्र, आदि –