सुंदर Erlang कोड [बंद]


15

मैं उन खिलौनों परियोजनाओं की तुलना में अधिक जानने की कोशिश कर रहा हूं, जिनके साथ मैं खेल रहा हूं। यह अंत करने के लिए, मैं सॉफ्टवेयर पर आर्मस्ट्रांग से प्रोग्रामिंग एर्लैंग और कुछ अभिलेखागार के माध्यम से पढ़ रहा हूं ।

मैं कुछ उदाहरणों (अधिमानतः उत्पादन) कोड को भी पढ़ना चाहूंगा जो कि आपके द्वारा बनाई जा सकने वाली चीजों के प्रकार को एर्लैंग के साथ प्रदर्शित करता है जो अन्य भाषाओं में बिल्कुल मुश्किल होगा। इसके अलावा (मुझे लगता है) Yaws , वहाँ सुंदर Erlang कोड के किसी भी सार्वजनिक रूप से उपलब्ध उदाहरण है कि मैं के माध्यम से भाषा की एक बेहतर समझ हासिल करने और / या विभिन्न भाषा निर्माणों के लिए मुहावरेदार उपयोग देख सकते हैं?

मैं विशेष रूप से उस कोड की तलाश नहीं कर रहा हूं जो "काम हो जाता है", लेकिन "यहां आप factorialइरलांग में कैसे लिखते हैं" की तर्ज पर संदिग्ध प्रथाओं या उदाहरणों का उपयोग करते हैं ।

उसी नस में, क्या कोई भी इस भाषा को सीखने के लिए किसी अच्छे साहित्य की सिफारिश कर सकता है (उल्लेखित "प्रोग्रामिंग एरलांग" के अलावा)? वरीयता के लिए, कुछ आप स्वयं इसे सीखने के लिए उपयोग करते थे, लेकिन अगर इसके लिए कुछ सामुदायिक मानक पुस्तकें हैं, तो उन्हें भी फेंक दें।


एरलैंग को एरिकसन ने फोन ट्रैफ़िक के लिए बड़े पैमाने पर समानांतर स्विच बनाने और बनाने के लिए बनाया था। इसे एरिक्सन द्वारा वितरित, फॉल्ट-टॉलरेंट, सॉफ्ट-रियल-टाइम, नॉन-स्टॉप एप्लिकेशन का समर्थन करने के लिए डिज़ाइन किया गया था। यह समस्या डोमेन है जिसमें यह एक्सेल करता है। अन्य सभी समस्या डोमेन के लिए ... आपका माइलेज भिन्न हो सकता है।
रॉबर्ट हार्वे

जवाबों:


6

एक और अच्छा संदर्भ एर्लांग और ओटीपी इन एक्शन है

कोड के नमूनों के बारे में: एरलांग के लिए सर्वोत्तम प्रथाओं को खोजना कठिन है, लेकिन मेरा सुझाव है कि आप इन वेबसाइटों की कोशिश करें:

इस लेख के लिंक की जाँच करें (erlang में खुला स्रोत सॉफ़्टवेयर) और आपको दिलचस्प कोड मिल सकता है।


-4

चूंकि आपने टैग फंक्शनल-प्रोग्रामिंग को जोड़ा है, हास्केल में एर्लैंग कंपाइलर या दुभाषिया लिखने के बारे में कैसे? एर्लैंग अब बिल्कुल भी अत्याधुनिक नहीं है, बिल्कुल भी नहीं। मैं एक या दो दिनों में, कुछ अन्य भाषाओं (एलआईएसपी, प्रोलॉग) की तरह एर्लैंग सीखने की सलाह देता हूं और फिर उनके बारे में भूल जाता हूं; वे अनिवार्य OOP- भाषाओं को अनजान करने के लिए एक कदम हैं।

संकलक को लागू करने से छोटे कार्यों के लिए, प्रोजेक्ट यूलर देखें ।

[संपादित करें] टिप्पणी का उत्तर देने के लिए:

तकनीकी दृष्टि से: पुराने दिनों में एरलांग अच्छा था, जब मल्टीकोर-प्रोसेसर नहीं थे। लेकिन अब मौजूदा कंपाइलर्स / दुभाषियों को छोड़ दें, तो मैं इस बारे में कुछ नहीं कह रहा हूं कि जैसा होना चाहिए वैसा अब नहीं होता। हास्केल में लिखा गया एक दुभाषिया स्केल होगा, जिसे हास्केल से संकलित किया गया है, जो इसे और तेज़ बना देगा, लेकिन ऑन-द-फ्लाई कोड-रिप्लेसमेंट फ़ीचर को हटा देगा।

प्रोग्रामर्स के दृष्टिकोण से: हास्केल सभी लागू कार्यों के लिए सबसे अच्छा विकल्प नहीं है, लेकिन एटीएम, शायद अधिक उन्नत भाषाएं बहुत प्रयोगात्मक हैं, और जो लागू नहीं होते हैं, वे आमतौर पर एम्बेडेड सिस्टम (जैसे माइक्रोकंट्रोलर और जीपीयू) या के साथ करने के लिए sth होते हैं नंबरक्रंचिंग, जहां सी और असेंबलर अभी भी सबसे अच्छा विकल्प हैं।

वास्तव में ऐसी कौन सी चीज है जो आप एरलंग के साथ अन्य भाषाओं की तुलना में बेहतर कर सकते हैं?


4
मैंने इसे सीखने का दावा नहीं किया क्योंकि यह अत्याधुनिक था; मुझे लगता है कि यह दिलचस्प लग रहा है, और ऐसी चीजें हो सकती हैं जो आप इसके साथ बना सकते हैं जो आप आसानी से अन्य भाषाओं के साथ नहीं कर सकते। यदि आपका जवाब "हस्केल सभी लागू कार्यों के लिए एक बेहतर विकल्प है", तो मुझे यह बताने के बारे में कि विशेष रूप से (केवल इसे जोरदार तरीके से बताने के बजाय), और एर्लांग के बजाय हास्केल के लिए प्रारंभिक प्रश्न का उत्तर क्यों दे रहे हैं?
inaimathi

1
मुझे लगता है कि इस सवाल का जवाब है पता नहीं है कि , बुरा है, हालांकि यह मूल प्रश्न के आसपास स्कर्ट सही करता है। यदि आप कुछ प्यारे हास्केल को इस अर्थ में देखना चाहते हैं कि कॉमनैड किस बारे में बात कर रहा है, तो en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours पर एक ट्यूटोरियल देखें जो हैस्केल , पार्स पार्सिंग लाइब्रेरी और स्कीम पार्सर लिखकर सिखाता है। । पार्सर कॉम्बिनेटर हैं, मुझे लगता है, कार्यात्मक भाषाओं में खेलने के लिए अधिक सुंदर चीजों में से एक है। वे थोड़े व्यावहारिक भी हैं; एक बार जब आप जानते हैं कि कैसे पार्सर लिखना है, तो आप विशिष्ट समस्याओं को हल करने के लिए अपनी भाषाएं डिज़ाइन कर सकते हैं।
कोडेक्सआर्केनम

1
"वास्तव में ऐसा क्या है जो आप अन्य भाषाओं की तुलना में एरलंग के साथ बेहतर कर सकते हैं?" मुझे नहीं पता; इसलिए मैं इसे सीखने की कोशिश कर रहा हूं। मेरी आंत मुझे बताती है कि एक भाषा जिसका मुख्य निर्माण प्रक्रिया है (सीएल के रूप में बंद करने का विरोध किया गया, योजना के रूप में लंबोदा या अजगर के रूप में शब्दकोष) में कुछ दिलचस्प होगा। हास्केल भी कार्यात्मक है, और इसमें समान पैटर्न मिलान निर्माण हैं, लेकिन संगामिति पर एक निरंतर ध्यान केंद्रित नहीं है। वास्तव में, हास्केल में प्रमुख निर्माण प्रकार लगता है, जो मुझे लगता है कि वे बहुत अलग जानवर हैं।
इनामाथी

2
@CodexArcanum - AFAIK, Erlang और OTP मोज़िला पब्लिक लाइसेंस के एक व्युत्पन्न के तहत उपलब्ध हैं, और यह डेबियन रेपो से बीयर के रूप में स्वतंत्र है। "सिस्टम मालिकाना है" से आपका क्या मतलब है?
इनामाथी

1
@ कॉमोड - मुझे "हास्केल सभी लागू कार्यों के लिए एक बेहतर विकल्प है" का अर्थ था "हर कार्य के लिए जिसे मैं पूरी तरह से Erlang के साथ पूरा कर सकता था, हास्केल इसे बेहतर कर सकता है"। मेरा मतलब यह नहीं था कि आप सभी प्रोग्रामिंग का काम एक ही भाषा के साथ कर सकते थे, या यह कि मैं अपनी सभी परियोजनाओं के लिए केवल एक भाषा का उपयोग करना चाह रहा था। आपको लग रहा था कि "हास्केल का उपयोग करने पर एर्लैंग का उपयोग क्यों करें?", जिसका अर्थ है कि आपको लगता है कि हास्केल सीधे बेहतर हैं। मैं चाहता था कि आप स्पष्ट करें और शायद उस दावे का समर्थन करें।
इनामाथी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.