5

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

आमतौर पर मैं अपने कार्यों को एसएमएलएनजे दुभाषिया में पेस्ट करता हूं। क्या कोई तरीका है कि मैं उन्हें संकलित कर सकता हूं?

+1

एसएमएलएनजे कोड भी संकलित कर सकता है ... सीएम, संकलन प्रबंधक की तलाश करें। (हालांकि यह वास्तव में अन्य अनुप्रयोगों में एकीकरण के साथ मदद नहीं करता है।) – ephemient

उत्तर

5

आपको the MLj Compiler जैसे कुछ उपयोग करना होगा। यह जावा बाइट कोड के लिए संकलित करता है। या आप .NET IL को संकलित करने के लिए SML.NET कंपाइलर का उपयोग कर सकते हैं।

+0

सुंदर, वे दोनों दो अच्छे विकल्पों की तरह दिखते हैं। – Chet

4

यह दोनों पक्षों के लिए सी को निर्यात और फिर एक दूसरे के सी कार्यों कॉल करने के लिए एमएल के बीच आम है। बस के बारे में सब कुछ 'आसानी से' सी

के लिए निर्यात के लिए एक FFI पुस्तकालय है

http://www.smlnj.org/doc/SMLNJ-C/index.html

तो बाहरी दुनिया में अपना sml पुस्तकालय एक सी पुस्तकालय की तरह साथ छोड़कर कैसा व्यवहार करेंगे बाहर assiciated segfaults और मेमोरी लीक *

* गारंटी नहीं

2

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

2

several Standard ML compilers हैं। एमएलटन विकी में benchmark भी शामिल है।

मैंने मॉस्को एमएल का उपयोग किया जो मानक एमएल को बाइटकोड में संकलित करता है। यह तेज़ नहीं है, लेकिन यह काम करता है। एमएलटन को दक्षता के संबंध में अक्सर सर्वोत्तम मानक एमएल कंपाइलर माना जाता है।

0

ध्यान दें कि पॉली/एमएल संस्करण 5 या बाद में पारंपरिक "हीप डंप" मॉडल और सी-स्टाइल स्टैंडअलोन एक्जिक्यूटिव दोनों का समर्थन करता है। Poly/ML website पर प्रलेखन कई अलग-अलग स्थानों पर फैला हुआ है, उनमें से कुछ शीर्षक में वास्तव में पुरानी तिथियों के साथ हैं - लेकिन सिस्टम जिंदा है और लात मार रहा है।

ऑब्जेक्ट-कोड पीढ़ी को संस्करण 5.0 रिलीज के लिए release notes में गुजरने में समझाया गया है (हम वर्तमान में 5.5 पर हैं): PolyML.export देखें।

कुछ पॉली/एमएल सी इंटरफ़ेस भी है, जिसे हाल ही में कुछ जीयूआई परियोजनाओं के लिए उपयोग के रूप में नवीनीकृत किया गया है। आपको पॉलिम मेलिंग सूची में पूछना चाहिए।

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