Question

J'ai vraiment aimé apprendre ML au collège. Je trouve la programmation fonctionnelle souvent une façon rafraîchissante et élégante d'écrire certains algorithmes. J'ai entendu parler de F # et j'ai joué un peu avec ça. Pourtant, j'ai écrit des fonctions intéressantes en ML et j'aimerais les intégrer en tant que bibliothèques que je pourrais utiliser dans d'autres applications.

Habituellement, je colle mes fonctions dans l'interpréteur SMLNJ. Y a-t-il un moyen de les compiler?

Était-ce utile?

La solution

Vous devrez utiliser quelque chose comme le compilateur MLJ. Il se compile au code d'octets Java. Ou vous pouvez utiliser le Sml.net compilateur pour compiler avec .net il.

Autres conseils

C'est courant parmi Ml Pour que les deux côtés l'exportent vers C, puis s'appellent les fonctions C. À peu près tout a une bibliothèque FFI pour l'exportation «facilement» vers C.

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

Donc, dans le monde extérieur, votre bibliothèque SML se comporterait comme une bibliothèque C sauf sans les segfaults et les fuites de mémoire assis *

* Pas une garantie

Les projets populariser les langues. Faites le travail au sol pour un projet intéressant et indéniablement «cool» en utilisant ML, et les gens afflueront vers la langue. Par exemple, regardez Erlang avec Ejabberd et Mochiweb - tous deux des projets sympas qui ont fait des merveilles pour une langue à temps diamant dans le rough comme Erlang (qui est, btw, ma langue de développement de choix ces derniers temps). Pour ma part, j'aimerais voir quelqu'un faire quelque chose de rad avec ML, la langue est une joie à penser.

Il y a Plusieurs compilateurs ML standard. Le wiki mlton contient également un référence.

J'ai utilisé Moscou ML qui compile ML standard en bytecode. Ce n'est pas rapide, mais ça marche. MLton est souvent cité pour être le meilleur compilateur ML standard en ce qui concerne l'efficacité.

Notez que Poly / ML version 5 ou version ultérieure prend en charge le modèle traditionnel de "vidage de tas" et les exécutables autonomes de style C. La documentation sur le Site Web poly / ml est réparti sur de nombreux endroits différents, certains avec des dates vraiment anciennes dans le titre - mais le système est vivant et lance.

La génération de code d'objet est expliquée en passant notes de version Pour la version de la version 5.0 (nous sommes actuellement à 5.5): Voir PolyML.export là.

Il existe également une interface poly / ml C, qui a été rénovée comme utilisée pour certains projets d'interface graphique récemment. Vous devriez demander à la liste de diffusion Polyml.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top