2012-12-16 8 views
5

मुझे लगता है कि मैं अक्सर इस बात के बारे में असंगत हूं कि मैं कितनी इंडेंट चीजें डालता हूं, जहां मैंने नई लाइनों में रखा है, आदि .. क्या आस्केल में लेआउट व्हाइटस्पेस को कैसे लेना चाहिए इसके लिए आधिकारिक या व्यापक रूप से दिशानिर्देश हैं? ध्यान दें कि मैं नहीं पूछ रहा हूं कि कानूनी क्या है; मैं पूछ रहा हूं कि Good Haskell coding style of if/else control block? की तर्ज पर अच्छी प्रैक्टिस क्या है, लेकिन अधिक आम तौर पर। मैं यह जानकर विशेष रूप से उत्सुक हूं कि लोग डू-ब्लॉक, लेट-ब्लॉकों, कहां-ब्लॉक और केस स्टेटमेंट्स के साथ क्या करते हैं, खासकर जब ऐसी चीजें एक-दूसरे में या कई फ़ंक्शन परिभाषाओं के अंदर घोंसला होती हैं।हास्केल इंडेंटेशन शैली

+1

[इंडेंटेशन] (http://en.wikibooks.org/wiki/Haskell/Indentation) विकीबुक्स पर जो आप खोज रहे हैं उसे कवर करना चाहिए। –

+13

[यहां एक है इंडेंटेशन समेत सामान्य हास्केल शैली दिशानिर्देशों का अच्छा सेट] (https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md) – hammar

+1

@ डेविड: यह कानूनी है, न कि क्या है अच्छा अभ्यास – Mohan

उत्तर

1

यदि मैं कर सकता हूं तो एक छोटा सा नाइटपिक।

मुझे ज्यादातर हैमर के लिंक किए गए दिशानिर्देश पसंद हैं। लेकिन, मैं वास्तव में इस शैली नापसंद:

send :: Socket 
    -> ByteString 
    -> IO Int 

मैं बहुत पसंद करते हैं

send :: 
    Socket -> 
    ByteString -> 
    IO Int 

उत्तरार्द्ध शैली में, तर्क और परिणाम अलग दिख (तर्क उनके पीछे -> रों है)।

मुझे यह बेहतर पसंद है। लोग असहमत हो सकते हैं और यह ज्यादातर व्यक्तिगत स्वाद का मामला है। अफसोस की बात है कि afaik हैडॉक केवल पूर्व शैली का समर्थन करने लगता है :(

+1

मुझे यह भी आश्चर्य है कि 80 वर्ण प्रति पंक्ति नियम पे के अंतराल में है या नहीं ओपल को कार्ड पर अपने हैकेल स्रोत को पेंच करने की जरूरत है? – Ingo

+0

@Ingo मेरी राय में, कॉलम सीमाएं अंतरिक्ष का बेहतर उपयोग करती हैं। मैं आम तौर पर स्क्रीन पर पाठ के कई कॉलम रखता हूं। – Heatsink

+0

@Heatsink बहुत सच है। लेकिन 80 क्यों? 72 या 96 क्यों नहीं? – Ingo

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