मेरे पास एक हास्केल प्रोजेक्ट है जो नियमित रूप से बहुत सारी भाषा सुविधाओं का उपयोग करता है, और मैं चाहता हूं कि प्रत्येक स्रोत फ़ाइल के लिए भाषा एक्सटेंशन ब्लॉक समान हो। यहाँ एक सूची,हैकेल - LANGUAGE pragmas के अपने समूह को रोल करने का कोई तरीका?
{-# LANGUAGE Arrows,
BangPatterns,
DefaultSignatures,
DeriveDataTypeable,
DeriveFunctor,
EmptyDataDecls,
FlexibleContexts,
FlexibleInstances,
FunctionalDependencies,
GADTs,
GeneralizedNewtypeDeriving,
MultiParamTypeClasses,
NamedFieldPuns,
NoImplicitPrelude,
NoMonomorphismRestriction,
OverlappingInstances,
RankNTypes,
RebindableSyntax,
ScopedTypeVariables,
StandaloneDeriving,
TemplateHaskell,
TypeFamilies,
TypeOperators,
TypeSynonymInstances,
UndecidableInstances,
ViewPatterns #-}
हो सकता है कि कुछ यह बुरा व्यवहार है करने के लिए
है, लेकिन मैं "हास्केल +" है कि मैं आम तौर पर में कोड लिखने का हिस्सा बनने के भाषा एक्सटेंशन पर विचार करें। और, मुझे लगता है कि एक ही भर मॉड्यूल होना चाहता हूँ। उदाहरण के लिए, NoImplicitPrelude
भाषा नाटकीय रूप से बदलता है, और मैं इसे सभी मॉड्यूल के लिए वर्दी चाहता हूं।
प्रश्न: मैं प्रत्येक फ़ाइल में भाषा ब्लॉक को कॉपी-पेस्ट किए बिना इसे कैसे प्राप्त कर सकता हूं? यह परेशान हो जाता है कि मैं अक्सर एक नई भाषा सुविधा कैसे सीखता हूं, इसे मॉड्यूल A
पर जोड़ें, फिर मॉड्यूल B
पर काम करना प्रारंभ करें, और मुझे एहसास है कि मुझे मॉड्यूल A
से भाषा ब्लॉक की प्रतिलिपि बनाना है।
बस FYI एक #include
साथ CPP
pragma नहीं चाल क्या करता है! अग्रिम में धन्यवाद।
पूर्व यहां विचित्र संबंधित प्रश्न: http://stackoverflow.com/questions/6005382/haskell-ways-to-have-a-clean-import-block-re-exporting-modules-multiple-im – gatoatigrado
मैं दृढ़ता से सुझाव देता हूं कि ' डिफ़ॉल्ट एक्सटेंशन की आपकी सूची में ओवरलैपिंग इंस्टेंस '। – ehird
@ehird, अच्छा बिंदु; हालांकि कभी-कभी इसका उपयोग किया जाता है। – gatoatigrado