मैं एक स्ट्रिंग को उलटने की कोशिश कर रहा हूं, ताकि वह 'abc defg hij'
बन जाए 'jih gfed cba'
। मैं जिस समाधान के साथ आया हूं
join(reverse(split(l:text, '.\zs')), '')
क्या कोई और अधिक सुंदर समाधान है या मुझे जो कुछ भी मिला है उसके साथ रहना चाहिए?
1
यह निर्भर करता है कि आप "सुरुचिपूर्ण" से क्या मतलब है। यदि आप पूछ रहे हैं, तो स्ट्रिंग को उलटने के लिए कोई आंतरिक कार्य समर्पित नहीं है। यदि आप आंतरिक कार्यों के लिए दो या उससे कम कॉल करते हैं और कोई अतिरिक्त कथन नहीं है, तो यह संभव भी नहीं लगता।
—
सातो कट्सुरा
आपका वर्तमान समाधान पहले से ही सुरुचिपूर्ण और मुहावरेदार दोनों है ।
—
रोमेनैल
छोड़ दो '।' विभाजित भाग में।
—
क्रिश्चियन ब्रेबेंड
@SatoKatsura वास्तव में, मुझे लगता है कि यह अधिक कुशल है, क्योंकि regexp इंजन को कुछ भी मिलान करने की आवश्यकता नहीं है। इसके अलावा, यह प्रलेखन से पसंदीदा तरीका है।
—
क्रिश्चियन ब्रेबेंड
@ChristianBrabandt नियमावली के अनुसार, विकल्प के
—
सातो कैटसुरा
split()
बिना {keepempty}
शुरुआत में एक भी खाली वस्तु को हटाना चाहिए, और अंत में एक खाली वस्तु को। यह वर्तमान में सूची के मध्य वाले सभी खाली आइटमों को हटा देता है, (यदि आप मुझसे पूछें तो प्रलेखित व्यवहार की तुलना में अधिक उपयोगी है, लेकिन आप शायद नहीं हैं)। मुझे लगता है कि इस पर हाल ही में चर्चा हुई है vim_dev
।