2014-09-05 10 views
6

रूबी ? पहचानकर्ता के अंत में अनुमति है जोरूबी के बराबर ...? हैकेल

जैसी चीजों को अनुमति देता है यदि do_something? do_something

जो फ़ंक्शन को कुछ करने से बूल को बरकरार रखने की अनुमति देता है।

हास्केल में, स्पष्ट रूप से प्रकार हस्ताक्षर आपको उन दो कार्यों के बीच अंतर बताता है, लेकिन क्या बूल या विकल्पों का नाम देने के लिए नाम या नामकरण पैटर्न है?

मेरे मामले में, मैं विकल्पों के मूल्य (तर्क के रूप में पारित) के आधार पर कुछ लेबल उत्पन्न करना (या नहीं) बनाना चाहता हूं।

स्पष्ट कोड होगा

generate options = do 
    when (generateLabels? options) generateLabels 

लेकिन generateLabels? के रूप में मान्य नाम नहीं है, मैं इसे कैसे फोन कर सकते हैं?

+6

मुझे नहीं पता कि इस सवाल का उत्तर दिए बिना उत्तर कैसे दिया जा सकता है। मुझे एक सम्मेलन से अवगत नहीं है, लेकिन मैं इसे 'लेबल्सअरेनिड :: विकल्प -> बूल' के रूप में नामित कर सकता हूं। फिर यह अंग्रेजी वाक्य की तरह पढ़ा जाएगा "जब विकल्प दिए गए लेबल की आवश्यकता होती है, लेबल उत्पन्न करें"। – bheklilr

+0

नहीं, वास्तव में नहीं। ऐसे फ़ंक्शन नाम देने के स्पष्ट सम्मेलन के अलावा, जो ध्वनि की तरह कुछ सच्चाई का प्रतिनिधित्व करते हैं। – Cubic

+0

@bheklilr: यह वास्तव में थोड़ा सा राय है लेकिन कम्युनिटी के लिए एक सामान्य सम्मेलन हो सकता है। हालांकि, मुझे आपका जवाब पसंद है, यहां तक ​​कि यह एक सामान्य पैटर्न ('?') – mb14

उत्तर

6

यदि आप that return Bool पर फ़ंक्शंस पर नज़र रखते हैं, तो आप देखेंगे कि सम्मेलन एक अनुमान का उपयोग करना है कि जब कोड में उपयोग किया जाता है तो वाक्य की तरह पढ़ता है। उदाहरण के लिए:

isDenormalized :: RealFloat a => a -> Bool 
isSigned :: Bits a => a -> Bool 
isAlphaNum :: Char -> Bool 

अपने समारोह में मैं सुझाव देंगे कि आप needsLabels की तरह कुछ करने के लिए generateLables? नाम बदलने के रूप में @bheklilr के लिए अपने कोड अधिक पठनीय बनाने के लिए में बताया।

+1

के रूप में काम नहीं करता है, मैं यह इंगित करना चाहता हूं कि इस नियम के अपवाद हैं, अर्थात् 'यहां तक ​​कि' 'विषम', ' शून्य ', और कुछ मुट्ठी भर, लेकिन' बेस 'के बाहर अधिकांश पुस्तकालयों में, फ़ंक्शन नाम में कुछ क्रिया का उपयोग करने का सम्मेलन काफी आम है। – bheklilr

+0

मैं आमतौर पर 'है ...' पैटन का उपयोग करता हूं लेकिन मेरे मामले से संबंधित कुछ भी नहीं मिला। 'ज़रूरतें लेबल' बिल्कुल वही है जो मुझे चाहिए। – mb14

संबंधित मुद्दे