2016-01-10 4 views
6

मैं सोच रहा था कि क्यों एलिक्सीर में मैथ मॉड्यूल नहीं है।एलिक्सीर में मैथ मॉड्यूल क्यों नहीं है?

मैं समझता हूँ कि हम इस का उपयोग करते हुए Erlang math: मॉड्यूल लिख सकते हैं:

alias :math, as: Math 

लेकिन, यह अच्छा हमारे अमृत कोड में है कि लाइन डालने के लिए अभ्यास है?

iex(1)> alias :math, as: Math 
nil 
iex(2)> Math.pi() 
3.141592653589793 
iex(3)> Math.pow(3, 2) 
9.0 

ओह, यह स्पष्ट है कि हम प्रलेखन के लिए उपयोग एक अमृत तरह से नहीं मिल सकता है:

iex(4)> h(Math) 
:math is an Erlang module and, as such, it does not have Elixir-style docs 
+1

हमें मौजूदा एरलांग कार्यक्षमता को डुप्लिकेट क्यों करना चाहिए जो परीक्षण और साबित हुआ है? ऐसा करने के लिए एक आकर्षक लाभ कहां है? –

+0

एक बार जब मैंने @ जोसेवलिम उत्तर पढ़ा कि डुप्लिकेटिंग मॉड्यूल को कोई समझ नहीं आता है। एरिक्ंग के मामले में एलिक्सीर, एरलांग से सबकुछ का उपयोग कर सकते हैं, इसलिए यदि आप कुछ भी नहीं बदलते हैं तो इन मॉड्यूल को क्लोन करने का कोई मतलब नहीं है। – PatNowak

उत्तर

6

असल में मॉड्यूल के बहुत सारे अपने हैं

आईईएक्स में यह काम करने के लिए लगता है वर्तमान में erlang में जो elixir में मौजूद नहीं हैं। उन सभी को आयात करने से ज्यादा समझ नहीं आएगी, क्योंकि संबंधित एरलांग मॉड्यूल उपलब्ध हैं और एलिक्सीर में भी उनका उपयोग करना काफी आसान है।

docs

अमृत से

इसके अलावा एक ही आभासी मशीन में चलता है और OTP साथ संगत है। इतना ही नहीं, एर्लिक्स पारिस्थितिक तंत्र में उपलब्ध सभी टूल्स और लाइब्रेरी भी एलिक्सीर में उपलब्ध हैं, क्योंकि इलिक्स से एलीक्सिर को कॉल करने से कोई रूपांतरण लागत नहीं है और इसके विपरीत।

प्रलेखन के लिए एलिक्सीर अभी भी अपेक्षाकृत नया है, लोग working on it हैं। आप जल्द ही आईईएक्स में erlang दस्तावेज़ होना चाहिए। https://github.com/elixir-lang/elixir/issues/3589

6

लेकिन, क्या यह लाइन हमारे एलिक्सीर कोड में रखना अच्छा अभ्यास है?

हां। अंत में, सब कुछ एरलांग एएसटी में अनुवादित किया जाता है, फिर बीएएम बाइटकोड में संकलित किया जाता है। हम निक्लीर में एरलांग की विरासत को न तो इनकार कर सकते हैं और न ही भूल सकते हैं।

+1

मैं 'नहीं' कहूंगा क्योंकि इरलांग मॉड्यूल को सीधे कॉल करना बिल्कुल ठीक है और। इसके अलावा लाइन डालने से, आप इस बात से परेशान नहीं हैं कि आप एक एरलांग मॉड्यूल का उपयोग कर रहे हैं, क्योंकि शायद आप उस अमूर्तता को वैसे भी नहीं चाहते हैं। –

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