Использование ML в приложениях "реального мира" - PullRequest
5 голосов
/ 26 июня 2009

Мне очень понравилось изучать ML в колледже. Я нахожу функциональное программирование часто элегантным способом написания определенных алгоритмов. Я слышал о F # и немного поиграл с этим. Тем не менее, я написал несколько интересных функций в ML и хотел бы интегрировать их как библиотеки, которые я мог бы использовать в других приложениях.

Обычно я вставляю свои функции в интерпретатор SMLnj. Есть ли способ, которым я могу скомпилировать их?

Ответы [ 5 ]

5 голосов
/ 26 июня 2009

Вам придется использовать что-то вроде компилятор MLj . Он компилируется в байт-код Java. Или вы можете использовать компилятор SML.NET для компиляции в .NET IL.

4 голосов
/ 15 июля 2009

Среди ML обычно обе стороны экспортируют в C, а затем вызывают друг друга на C. Почти все имеет библиотеку FFI для «простого» экспорта в C.

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

так что для внешнего мира ваша библиотека sml будет вести себя как библиотека C, за исключением тех случаев, когда отсутствуют ошибки и утечки памяти *

* не гарантия

2 голосов
/ 09 августа 2009

Есть несколько стандартных компиляторов ML . MLton Wiki также содержит тест .

Я использовал Moscow ML, который компилирует Standard ML в байт-код. Это не быстро, но работает. MLton часто называют лучшим компилятором Standard ML с точки зрения эффективности.

2 голосов
/ 04 августа 2009

Проекты по популяризации языков. Сделайте основание для интересного и, несомненно, «крутого» проекта с использованием ML, и люди будут стремиться к языку. Например, посмотрите на Erlang с ejabberd и mochiweb - оба замечательных проекта, которые сотворили чудеса для такого единственного в своем роде языка, как erlang (который, между прочим, я выбрал в последнее время для разработки). Я, например, хотел бы видеть, как кто-то делает что-то хорошее с ML, язык - это радость для размышлений.

0 голосов
/ 01 марта 2013

Обратите внимание, что Poly / ML версии 5 или более поздней поддерживает как традиционную модель «дампа кучи», так и автономные исполняемые файлы в стиле C. Документация на веб-сайте Poly / ML распространяется по многим различным точкам, некоторые из них с действительно старыми датами в заголовке - но система жива и здорова.

Генерация объектного кода объясняется в передаче примечаний к выпуску для версии 5.0 (сейчас мы находимся на 5.5): см. PolyML.export там.

Существует также некоторый интерфейс Poly / ML C, который был недавно обновлен для использования в некоторых проектах с графическим интерфейсом. Вы должны спросить в списке рассылки polyml.

...