2012-06-22 9 views
5

मैं एक स्कैला शुरुआती हूं और ऑब्जेक्ट ओरिएंटेड पैराडिग से आ रहा हूं। स्कैला के कार्यात्मक प्रोग्रामिंग भाग को समझते समय, मुझे हास्केल - शुद्ध कार्यात्मक प्रोग्रामिंग भाषा के लिए निर्देशित किया गया था।हैकेल स्कैला इंटरऑपरेबिलिटी

SO प्रश्न-उत्तर की खोज, मैंने पाया कि जावा - हास्केल में इंटरऑपरेबिलिटी है।

मुझे यह जानकर उत्सुकता है कि स्कैला-हास्केल इंटरऑपरेबिलिटी मौजूद है या नहीं?

क्या हास्केल में लिखी गई फ़ंक्शन लाइब्रेरी स्कैला एप्लिकेशन में उपयोग की जा सकती है?

डॉन स्टीवर्ट द्वारा दिए गए उत्तर के अनुसार: यह संभव है।

स्कैला आवेदन में हास्केल फ़ंक्शन लाइब्रेरी का एकीकरण सीधे और आसान होगा या जटिल tweaks की आवश्यकता होगी?

एकीकृत हास्केल फ़ंक्शन लाइब्रेरी के साथ, स्कैला एप्लिकेशन JVM पर चलाएगा या अलग-अलग व्यवस्था की आवश्यकता होगी?

+1

यदि जावा-हास्केल इंटरऑप है, तो हास्केल में स्कैला का उपयोग जावा का उपयोग करने के लिए अलग नहीं होना चाहिए। स्कैला "अंतर्निहित" से कुछ अतिरिक्त रनटाइम समर्थन के बावजूद स्कैला नियमित जावा कक्षाओं में संकलित करता है। – Ashe

उत्तर

4

मुझे पता चला कि जावा - हास्केल में इंटरऑपरेबिलिटी है। मुझे यह जानकर उत्सुकता है कि स्कैला-हास्केल इंटरऑपरेबिलिटी मौजूद है या नहीं?

खैर यह देखते हुए कि अंतर सकर्मक है, और यह देखते हुए कि (hj_interop : Haskell <-> Java) और (js_interop : Java <-> Scala), इसलिए हम निष्कर्ष है कि Haskell <-> Scala

आप Haskell -> Scala चाहते हैं, तो बस hj_interop से Haskell -> Java, और Java -> Scalajs_interop से ले लो। यदि आप Scala -> Haskell चाहते हैं, तो से Scala -> Java और से Java -> Haskell लें।

यह हास्केल - स्कैला इंटरऑपरेबिलिटी को पूरा करने के तरीके के बारे में बहुत ही स्पष्ट जानकारी नहीं है, लेकिन मौजूदा इंटरऑपरेबिलिटीज को देखते हुए, आप उन्हें स्पष्ट तरीके से लिखते हैं। स्कैला को अतिरिक्त हास्केल-वाई महसूस करने के लिए scalaz प्रदान करने के अलावा, मुझे हास्केल के साथ कोई सीधी, सुविधाजनक इंटरऑपरेबिलिटी प्रदान नहीं है। हास्केल स्काला के साथ कोई सीधी, सुविधाजनक इंटरऑपरेबिलिटी प्रदान नहीं करता है जिसे मैं जानता हूं।

+0

स्केल -> हास्केल को स्केल -> जावा से js_interop से जावा, और जावा -> Haskell से hs_interop का उपयोग करके प्रदर्शन समस्याएं क्या हो सकती हैं। यहां मुख्य उद्देश्य हैकेल की भारी फंक्शनल प्रोग्रामिंग शक्तियों का लाभ उठाना है। – Optimight

+0

स्कैला <-> जावा इंटरऑप प्रभावी रूप से शून्य लागत है। जो कुछ भी कहा गया है, यदि आप स्कैला में हास्केल-जैसे कोड लिखना चाहते हैं, तो बस स्केलज़ इंस्टॉल करें और बहुत अधिक प्रकार के हस्ताक्षर लिखें। :) –

+0

आपको फ्रीज प्रोजेक्ट में दिलचस्पी हो सकती है (http://code.google।कॉम/पी/फ्रीज /), जो जेवीएम पर एक बहुत ही हास्केल जैसी भाषा रखता है। मैं जावा इंटरऑपरेबिलिटी को अभी भी सुधार के लिए कमरा मानता हूं, लेकिन इसमें बनाया गया है, और संकलक बहुत मजेदार जावा * स्रोत * फाइलों को उत्सर्जित करता है। – Landei

4

यह संभव है, लेकिन मुझे किसी भी उदाहरण से अवगत नहीं है।

+4

यदि आप JVM और GHC rts को एकसाथ कोशिश करते हैं और लिंक करते हैं तो यह जटिल होगा। यदि आप प्रोटोकॉल के माध्यम से संवाद करते हैं, तो यह आसान होगा। JSON। –

+0

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

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

  • कोई संबंधित समस्या नहीं^_^