سؤال

أنا حقا أحب تعلم ML في الكلية. أجد البرمجة الوظيفية في كثير من الأحيان طريقة أنيقة منعشة لكتابة خوارزميات معينة. لقد سمعت عن F# ولعبت مع ذلك قليلاً. ومع ذلك ، فقد كتبت بعض الوظائف المثيرة للاهتمام في ML وأرغب في دمجها كمكتبات يمكنني استخدامها في التطبيقات الأخرى.

عادة ما ألصق وظائف بلدي في مترجم SMLNJ. هل هناك طريقة يمكنني من خلالها تجميعها؟

هل كانت مفيدة؟

المحلول

سيكون عليك استخدام شيء مثل مترجم MLJ. يجمع إلى رمز بايت جافا. أو يمكنك استخدام SML.NET مترجم لتجميع .NET IL.

نصائح أخرى

إنه أمر شائع بين مل لكلا الجانبين للتصدير إلى C ثم استدعاء وظائف بعضهما البعض. حول كل شيء يحتوي على مكتبة FFI لـ "بسهولة" تصدير إلى C.

http://www.smlnj.org/doc/smlnj-c/index.html

لذلك بالنسبة للعالم الخارجي ، تتصرف مكتبة SML مثل مكتبة C إلا مع الخروج من Segfaults و Memory Leaks*

*ليس ضمانًا

المشاريع تعميم اللغات. قم بعمل الأرض لمشروع "رائع" مثير للاهتمام ولا يمكن إنكاره باستخدام ML ، وسيقوم الناس بالتدفق إلى اللغة. على سبيل المثال ، انظر إلى Erlang مع Ejabberd و Mochiweb-كلا المشروعين الرائعين الذين قاموا بالعجائب اللغوية لمرة واحدة مثل Erlang مثل Erlang (وهي BTW ، لغة التطوير الخاصة بي مؤخرًا). أنا من أجل واحد ، أحب أن أرى شخصًا ما يصنع شيئًا ما مع ML ، واللغة فرحة للتفكير بها.

هناك العديد من المترجمين القياسيين ML. يحتوي Mlton Wiki أيضًا على ملف معيار.

لقد استخدمت Moscow ML التي تجمع ML القياسية في BYTECODE. إنه ليس سريعًا ، لكنه يعمل. غالبًا ما يُشار إلى MLTON ليكون أفضل برنامج التحويل البرمجي ML قياسي فيما يتعلق بالكفاءة.

لاحظ أن Poly/ML الإصدار 5 أو في وقت لاحق يدعم كل من نموذج "Dump Dump" التقليدي ، والتنفيذية المستقلة على الطراز C. الوثائق على موقع بولي/مل ينتشر على العديد من المواقع المختلفة ، بعضها مع تواريخ قديمة حقًا في العنوان - لكن النظام على قيد الحياة والركل.

يتم شرح توليد الكائنات الكائن في المرور ملاحظات الإصدار للحصول على الإصدار 5.0 (نحن في الوقت الحاضر في 5.5): انظر PolyML.export هناك.

هناك أيضًا بعض واجهة Poly/ML C ، والتي تم تجديدها كما هو مستخدم في بعض مشاريع واجهة المستخدم الرسومية مؤخرًا. يجب أن تسأل في قائمة البوليمر البريدية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top