2013-04-16 4 views
8
में नेटवर्क पर एक समारोह पासिंग

निम्नलिखित मान लीजिए:हास्केल

मैं एक प्रकार कुछ अनुकरण राज्य का प्रतिनिधित्व करने World कहा जाता है।

type Update = World -> World 

हास्केल अद्यतन प्रकार ऐसी है कि वह नेटवर्क पर पारित किया जा सकता serializing करने में सक्षम है: मैं भी इस प्रकार के पर्याय है? या ऐसा करने का कोई और साधन है? हो सकता है कि मैं कोड के तर्क के क्रमिकरण की तलाश नहीं कर रहा हूं, क्योंकि किसी प्रकार का पॉइंटर या पहचानकर्ता जिसे दूसरे छोर पर पढ़ा जा सकता है। भेजने और प्राप्त करने की प्रक्रिया दोनों ही हास्केल कार्यक्रम चला रहे हैं।

+10

आपको 'क्लाउड हैकसेल' में देखना चाहिए जो मूल रूप से पॉइंटर्स को गुजरने के लिए एक प्रणाली है जो प्रत्येक पक्ष को एक मिलान करने वाली बाइनरी मानती है। –

+2

डेटा संरचना बनाने पर विचार करें 'डेटा इवेंट = थिंग | थिंग 2 इंट | ... 'हो सकता है कि परमाणु घटनाओं का प्रतिनिधित्व करने के लिए, फिर एक समारोह' अद्यतन :: घटना -> विश्व -> विश्व'। आप सादे डेटा 'ईवेंट' प्रकार को क्रमबद्ध कर सकते हैं और इसे पास कर सकते हैं (और यदि आप चाहें तो लॉगिंग आदि जोड़ें) और फिर नेटवर्क कनेक्शन के प्रत्येक छोर पर 'अपडेट' फ़ंक्शन का उपयोग करें। – AndrewC

+1

अफसोस की बात है, सामान्य रूप से उत्तर नहीं है। – augustss

उत्तर

12

पैकेज बिल्कुल वही है जो आपने वर्णित किया है। चूंकि प्रत्येक प्रोग्राम में पहले से ही फ़ंक्शंस का एक ही सेट होता है, इसलिए फ़ंक्शन के लिए एक पॉइंटर एक प्रक्रिया से दूसरे प्रक्रिया में पारित किया जाता है। एक संभावित भविष्य के लक्ष्य के रूप में समारोह के क्रमिकरण का उल्लेख किया गया है लेकिन ऐसा लगता है कि यह जीएचसी में बदलाव ले सकता है। github page बैकएंड मौजूद है के लिए एक अच्छा संसाधन है। github-pages कुछ उदाहरणों के साथ बहुत अच्छा लग रहा है, लेकिन मुझे एक पल पहले तक इसके बारे में पता नहीं था।

कुछ हास्केल समानांतर issue 11 के आसपास खोदता है जहां मुझे सबसे ज्यादा सीखना याद है। निश्चित रूप से github-pages का पता लगाने के लिए कुछ समय दें मुझे पता है कि मैं रहूंगा।

यदि मुझे सही ढंग से याद है तो हैकेज पैकेज में या गीथब रेपो पर काम करने वाले स्टीकिंग बनाम काम साझा करने और इसी तरह की रणनीतियों की खोज में सरल उदाहरण हैं।

+4

उत्सुकता के लिए: 'वितरित-प्रक्रिया' क्लाउड हास्केल का अवतार है। वास्तव में उन्होंने उन नामों को क्यों बदल दिया जिन्हें मैं नहीं जानता, लेकिन शायद यह सबसे अच्छा है। –

3

मैं एक डीएसएल डेटा संरचना बनाने का सुझाव देता हूं। अफसोस की बात है कि हास्केल में लिस्प की रनटाइम संकलन विशेषताएं नहीं हैं, लेकिन यह पर्याप्त होनी चाहिए।