कैसे सुधार किया जा सकता है? [बन्द है]


24

Pyth चल रहे विकास में है, जिसका अर्थ है कि हर समय नई सुविधाएँ जोड़ी जा रही हैं।

मैं पायथ को एक बेहतर लैंग्वेज बनाना चाहता हूं, इसलिए मैं जानना चाहता हूं कि लोग किन विशेषताओं की तलाश कर रहे हैं।

यह वह स्थान है जहां आपके पास पायथ को बेहतर बनाने के लिए आपके द्वारा पोस्ट किए गए विचार हैं।

अपने जवाब में, कृपया बताएं:

  • जो आप परिवर्तित / जोड़ा हुआ देखना चाहते हैं।

  • परिवर्तन का एक उदाहरण उपयोग।

यदि मैं सुझाव को लागू करने की योजना बना रहा हूं तो मैं टिप्पणी करूंगा।

कृपया जांचें कि क्या आप जिस विचार को सुझाना चाहते हैं, वह पहले ही सुझाया जा चुका है। विचारों को लागू करना चाहते हैं।


कार्यान्वित सुझाव:


यह इस मेटा प्रश्न के अनुसार विषय पर था जब मैंने प्रश्न पोस्ट किया था, यह अब स्पष्ट नहीं है।


1
यह एक समुदाय विकि क्यों है?
ज्योबिट्स

4
यह एक चर्चा और सुझावों का संग्रह है। पाइथ फीचर का सुझाव देने के लिए किसी को भी फायदा नहीं होना चाहिए और न ही हारना चाहिए। इसके अलावा, कार्यान्वित सुझावों को संभवतः हटा दिया जाना चाहिए। यह संबंधित प्रश्न सामुदायिक विकि भी है।
डेनिस

9
मुझे यकीन नहीं है कि मैं इस तरह के सवालों के बारे में कैसा महसूस कर रहा हूं। मैं देख सकता हूँ कि यह यहाँ समझ में आता है, क्योंकि PPCG संभवतः Pyth के उपयोगकर्ता आधार का सबसे अधिक (यदि सभी नहीं) कवर करता है, लेकिन मुझे यकीन नहीं है कि हमें इसे एक मुद्दा ट्रैकर के रूप में उपयोग करना चाहिए। मैंने मेटा पोस्ट में एक उत्तर जोड़ा है।
मार्टिन एंडर

यह मेटा नहीं होना चाहिए? गंभीर रूप से लोग
एलेक टीले

2
@AlecTeal "मेटा प्रोग्रामिंग पहेलियां और कोड गोल्फ स्टैक एक्सचेंज उस साइट का हिस्सा है जहां उपयोगकर्ता प्रोग्रामिंग पज़ल्स या कोड गोल्फ पर चर्चा करने के बजाय कोड गोल्फ स्टैक एक्सचेंज के कामकाज और नीतियों पर चर्चा करते हैं।" मेटा विशेष रूप से इस समुदाय के बारे में है । यह वास्तव में मेटा पर संबंधित नहीं है। चाहे वह यहाँ से हो या पीपीसीजी पर नहीं हो, वर्तमान में मैं जिस मेटा पोस्ट से जुड़ा हुआ है, उस पर चर्चा की जा रही है।
मार्टिन एंडर

जवाबों:


7

स्थिर फंदा

आप घोंसला चाहते हैं forछोरों, आप वर्तमान में उपयोग के लिए एक बाइट बर्बाद करने के लिए है F<var><seq>एक के अंदर V<seq>या ठीक इसके विपरीत। मुझे लैम्बदास के साथ एक ही चीज़ पसंद है, जहाँ लूप्स को घोंसले में बदलने पर लूप के लिए इस्तेमाल किया जाने वाला वेरिएबल बदल जाता है।


यह दूसरी चीज़ों के लिए भी एक्स्टेंसिबल हो सकता है L, जैसे Cकि दूसरी बार इसे फिर से परिभाषित करने के लिए कहा जा सकता है।
FryAmTheEggman


4

आसान मॉड्यूल आयात

अब तक, हर बार जब मैंने इसका इस्तेमाल किया है तो $यह कुछ इस तरह है:

$from <module> import <function> as <pyth-function-with-same-arity>$
for example:
$from unicodedata import name as neg$

एक नया कार्य हो सकता है जिसने इसे उदाहरण के लिए संक्षेप में प्रस्तुत किया है .$:

.$"unicodedata""name""neg"
.$"unicodedata name neg"

या नए सिंटैक्स का उपयोग करना, _Mजो करना आसान / संभव नहीं हो सकता है:

_$unicodedata name$

इसके अलावा, प्रत्येक एरिटी वाले एक फ़ंक्शन को एक अक्षर मैक्रो नाम दिया जा सकता है ताकि ये कॉल कम हो सकें ( _$विकल्प को छोड़कर )।


4

सोया हुआ

इससे यहां परेशानी हुई , और @ mbomb007 ने इसे पाइथ में सुधार के रूप में रखने का सुझाव दिया । मूल रूप से, अभी, कुछ सेकंड के लिए सोने के लिए, मुझे कुछ करने की आवश्यकता है:

Q$__import__('time').sleep(Q)$

जो हेक के रूप में कष्टप्रद और लंबा है।


आप दिनांक-फ़ंक्शन के साथ सोने के व्यवहार का अनुकरण कर सकते हैं। f>.d1Q0उदाहरण के लिए Qसेकंड सोता है ।
जक्यूब

@Jakube जो हमेशा काम नहीं करता है। डॉक्स के अनुसार, यूनिक्स पर, यह रिटर्न करता है कि कार्यक्रम कितने समय से चल रहा है। जब उपयोगकर्ता इनपुट दर्ज कर रहा है तो यह खराब है।
kirbyfan64sos

कैसे की तुलना में इस एक के बारे में: J.d0f>-.d0JQ0। हालांकि यह काफी लंबा है ... मैं मानता हूं, एक नींद समारोह अच्छा होगा।
जकुबे

4

अधिक लंबोदर

यह वास्तव में FryAmTheEggman का विचार है , लेकिन मैं इसे वहां से निकालने के लिए पोस्ट कर रहा हूं।

कभी-कभी मुझे पता चलता है कि दो अलग-अलग एक-तर्क वाले लैम्ब्डा का उपयोग करने से कोड छोटा हो जाएगा, जबकि एक के लिए दो-तर्क वाले लैम्ब्डा का उपयोग नहीं होगा।

यह अच्छा होगा L, Mऔर दोस्त हर बार उपयोग किए जाने वाले एक अलग फ़ंक्शन को फिर से परिभाषित करें; उदाहरण के लिए, यह कोड:

L*b2L*b3y5'5

के लिए संकलन कर सकता है:

@memoized
def subsets(b):
 return times(b,2)
@memoized
def read_file(b):
 return times(b,3)
imp_print(subsets(5))
imp_print(read_file(5))

कार्यों का सटीक विकल्प निश्चित रूप से बदला जा सकता है।


3

बेहतर बहुआयामी सरणियों

बहु-आयामी सरणियों का उपयोग करना वर्तमान में करना कठिन है। उदाहरण के लिए, C कोड पर्थ में A[B][C][D]अनुवाद करेगा @@@ABCD। कुछ @A[BCD)बहुत अच्छा होगा (यद्यपि यहां कोई छोटा नहीं है)। वही भी जाता है X; A[B][C][D] = Eवर्तमान में X@@ABCDE, जब यह हो सकता है XA[BCD)E


3

कुछ मामूली विचार

  • पूर्ण अंतर अर्थात abs(val1 - val2)। वर्तमान में यह है .a-<val1><val2>
  • min/ maxमूल्यों के लिए। वर्तमान में यह hS,<val1><val2>/ eS,<val1><val2>या अधिक मूल्यों के साथ एक ही बात है। ( hS<seq>/ eS<seq>दृश्यों के लिए पर्याप्त छोटा है।)

3

पायथ फीचर नहीं, लेकिन फिर भी ...

Pyth कोड को संशोधित करें

यह हुड के तहत केवल पायथ को प्रभावित करता है। पायथ कार्यान्वयन के कुछ हिस्से काफी गड़बड़ हैं। वैश्विक चर और अन्य हैकी चीजों के बहुत सारे।

मैं वास्तव में कुछ दिनों पहले निराश हो गया था, जब मैंने पायथन कार्यान्वयन के कुछ कार्यों का उपयोग करने की कोशिश की थी (जैसे कि पायथन कमांड के एक स्ट्रिंग को निष्पादित करना) एक और पायथन स्क्रिप्ट से।

निम्नलिखित में से कुछ अच्छा होगा:

from pyth import execute_pyth
print(execute_pyth(code='sQ', input='[1, 2, 3]'))

ठीक है, मुझे लगता है कि यह Pyth5 के लिए एक सहायता कॉल है।



1

अद्वितीय तत्व

वर्तमान में Pyth के पास अनुक्रम के अद्वितीय तत्वों को प्राप्त करने का कोई छोटा रास्ता नहीं है। आप परीक्षण कर सकते हैं यदि यह अद्वितीय है, लेकिन आप उन वस्तुओं को प्राप्त नहीं कर सकते हैं जो वास्तव में अद्वितीय हैं। वर्तमान में, सबसे छोटा तरीका है :

{.-Q{Q

6 बाइट्स! इसकी तुलना K से करें, जहां अद्वितीय तत्व प्राप्त करना एक बाइट ऑपरेशन है =x:।

शायद .}यहाँ काम करेगा?


क्या मामलों का उपयोग करें (एक चुनौती के अलावा) क्या आप सोच रहे हैं?
isaacg

@ आइसाकग मुझे काफी याद नहीं आ रहा है, लेकिन मुझे पहले एक सूची के अद्वितीय तत्वों को प्राप्त करने की कोशिश करनी थी और कुछ और (जो हमेशा लंबा था) का उपयोग करना था।
kirbyfan64sos

मैं पाइथ प्रोग्रामर नहीं हूं, लेकिन मैं गोल्फक्राफ्ट / सीजाम: सम्मान में हर समय इस पर चलता हूं .&_&बहुत सारे जवाबों में दिखाई देता है। बहुत काम का है।
लिन

1
यह किस तरह से अलग है {Q?
isaacg

1
@ आइसाकग इसे सॉर्ट किया जाता है
य्प्निपन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.