2011-03-22 11 views

उत्तर

25

सं

Erlang की वाक्य रचना बहुत Prolog के लिए समान है, लेकिन अर्थ विज्ञान बहुत अलग हैं। एर्लांग का प्रारंभिक संस्करण प्रोलॉग का उपयोग करके लिखा गया था, लेकिन आज के एरलांग को अर्थपूर्ण रूप से "प्रोलॉग पर आधारित" कहा जा सकता है।

एरलांग में नियमित रूप से तर्क प्रोग्रामिंग के लिए प्रोलॉग की बैकट्रैकिंग या अन्य विशेषताओं का उपयोग शामिल नहीं है। आप अन्य भाषाओं के ऊपर प्रोलॉग को निश्चित रूप से कार्यान्वित कर सकते हैं, और कुछ अन्य लोगों की तुलना में एरलांग एक आसान विकल्प है। यह रॉबर्ट Virding के "Erlog" परियोजना में देखा जा सकता:

https://github.com/rvirding/erlog

0

छोटा है, कोई यह नहीं है :) यह उन बिल्डिंग ब्लॉक नहीं है में। यह फोकस समवर्ती, समांतर प्रोग्रामिंग, वितरित अनुप्रयोगों और गलती सहनशीलता पर है (एक कार्यात्मक, सख्त, घोषणात्मक भाषा होने के दौरान)।

0

आप अच्छी तरह से एक बाधा प्रोग्रामिंग शैली में लागू करने के तरीके के रूप Erlang में सूची समझ सुविधा का उपयोग कर सकते हैं।

% Produce the tuple {1, 0} 
% 
constraint_test() -> [ {A, B} || 
    A <- lists:seq(0, 1), 
    B <- lists:seq(0, 1), 
    A > B]. 

आप वैकल्पिक रूप से सूचियों से लिया तत्वों की जगह जनरेटर (ए < - सूचियां: seq (0, 1)) और बाधाओं (ए> बी)।

मैंने हाल ही में नीचे दी गई समस्या का समाधान किया है। और यदि आप बाधाओं को सही तरीके से रखते हैं तो आपके पास एक सेकंड के तत्काल में जवाब होगा।

http://www.geocaching.com/seek/cache_details.aspx?guid=a8605431-53b5-4c2c-97fb-d42ee299b167

6

हां।

एर्लंग का पहला संस्करण प्रोलॉग में नहीं लिखा गया था, यह प्रतिबद्ध विकल्प तर्क प्रोग्रामिंग भाषाओं में से एक में लिखा गया था। इन भाषाओं ने प्रोलॉग की बैकट्रैकिंग को छोड़ दिया, इसलिए नाम "प्रतिबद्ध विकल्प" का अर्थ है जिसका अर्थ है कि एक बार विकल्प बनाया गया था, पीछे हटना और दूसरे की कोशिश करना संभव नहीं था। यह तर्क प्रोग्रामिंग समवर्ती रूप बनाने के सरलीकृत करने के लिए किया गया था। इसे देखने का एक और तरीका यह है कि समवर्ती प्रक्रियाएं चर के लिए बाधाओं को लागू करती हैं, लेकिन तर्क चर होने के कारण और इसलिए फिर से असाइन करने योग्य नहीं होते हैं, ये लगातार बाधाओं के मूल्य में परिवर्तन नहीं होंगे। बाधा एक चर के लिए आंशिक मान असाइन कर सकती है, जिसमें एक और चर होता है जिसे बाद में असाइन किया जाएगा। यह Erlang का अंतर्निहित मॉडल है। अवरोध तर्क प्रोग्रामिंग उन संस्करणों के लिए उपयोग किया जाता है जहां बाधाओं में इच्छित संख्यात्मक मानों के साथ चर के संभावित श्रेणियों के बारे में गणितीय विवरण भी शामिल हो सकते हैं।

एरलांग का सिंटैक्स अपनी तर्क प्रोग्रामिंग विरासत दिखाता है, लेकिन यह समझना महत्वपूर्ण है कि इसे प्रतिबद्ध विकल्प तर्क प्रोग्रामिंग भाषाओं के माध्यम से उठाया गया जो इसे प्रोलॉग से सीधे नहीं, प्रोलॉग से उठाया गया। यद्यपि 1 9 80 के दशक के दौरान कई प्रतिबद्ध पसंद तर्क प्रोग्रामिंग भाषाओं का निर्माण किया गया था, लेकिन वे प्रोलॉग की छाया से बाहर निकलने में असमर्थ थे, और असफल जापानी पांचवीं पीढ़ी की पहल के साथ उनके सहयोग से और उन्हें विकसित करने वाले डेवलपर्स की प्रतिस्पर्धी टीमों द्वारा भी खींचा गया था मामूली अंतर इसलिए कोई मानक स्थापित नहीं किया गया था।

एरलांग के डेवलपर्स ने एक वाक्य रचनात्मक चीनी पेश की जिसने कोड को और अधिक कार्यात्मक रूप दिया, और इसे तर्कसंगत प्रोग्रामिंग भाषा के बजाय कार्यात्मक के रूप में प्रचारित करने का विपणन निर्णय किया, जिसने इसे पांचवीं पीढ़ी के बाद खींचने में सक्षम नहीं बनाया तर्क प्रोग्रामिंग की बर्खास्तगी।

+0

धन्यवाद, अब मैं एरलांग में चर के बाध्यकारी और अपरिवर्तनीयता को बेहतर समझता हूं! यह जानकर अच्छा लगा कि यह कहां से आया था। – Amiramix

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