Pregunta

Realmente me gustó aprender ML en la universidad. Encuentro que la programación funcional a menudo es una forma refrescantemente elegante de escribir ciertos algoritmos. He oído hablar de F# y jugué con eso un poco. Aún así, he escrito algunas funciones interesantes en ML y me gustaría integrarlas como bibliotecas que podría usar en otras aplicaciones.

Por lo general, pego mis funciones en el intérprete SMLNJ. ¿Hay alguna manera de compilarlos?

¿Fue útil?

Solución

Tendrás que usar algo como el compilador MLJ. Se compila con el código de byte Java. O puedes usar el Sml.net compilador para compilar a .net IL.

Otros consejos

Es común entre Ml Para que ambas partes exporten a C y luego llamen a las funciones de C Casi todo tiene una biblioteca de FFI para exportar 'fácilmente' a C.

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

Entonces, para el mundo exterior, su biblioteca SML se comportaría como una biblioteca C, excepto sin las filtraciones de Segfaults y Memoria asiciadas*

*No es una garantía

Los proyectos popularizan los idiomas. Haga que el suelo funcione para un proyecto interesante e innegablemente 'genial' con ML, y las personas acudirán al idioma. Por ejemplo, mire a Erlang con Ejabberd y Mochiweb, ambos proyectos geniales que han hecho maravillas para un lenguaje de diamante en la sola vez como Erlang (que es, por cierto, mi lenguaje de desarrollo últimamente). Por mi parte, me encantaría ver a alguien hacer algo rad con ML, el lenguaje es un placer pensar.

Existen Varios compiladores de ML estándar. El Mlton Wiki también contiene un punto de referencia.

Utilicé Moscú ML que compila ML estándar en Bytecode. No es rápido, pero funciona. Mlton a menudo se cita como el mejor compilador ML estándar con respecto a la eficiencia.

Tenga en cuenta que Poly/ML versión 5 o posterior admite tanto el modelo tradicional de "volcado de montón" como ejecutables independientes de estilo C. La documentación en el Sitio web de poli/ml se extiende sobre muchos puntos diferentes, algunos de ellos con fechas realmente viejas en el título, pero el sistema está vivo y pateando.

La generación del código de objeto se explica al pasar en Notas de lanzamiento Para la versión de la versión 5.0 (actualmente estamos en 5.5): ver PolyML.export allá.

También hay una interfaz Poly/ML C, que se ha renovado como se utiliza para algunos proyectos de GUI recientemente. Debe preguntar en la lista de correo de Polyml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top