hola - Buenos proyectos para aprender OCaml y F#
hola mundo en ocaml (7)
Bueno, a Unison se me recomendó que echara un vistazo y resolviera varios problemas del Proyecto Euler , pero personalmente hago más cosas escribiendo mis propios programas prácticos , así que probablemente adaptaré uno de esos a OCaml. Para ver cómo va.
Después de aprender la sintaxis básica, leer un código no trivial es una forma rápida de aprender un idioma. También podemos aprender a diseñar una biblioteca / software durante la lectura del código de otros.
Tengo las siguientes listas.
Un programa de Chess en OCaml por Tomek Czajka .
Hal Daumé ha escrito varias bibliotecas de aprendizaje automático en Ocaml. Incluyendo árboles de decisión, regresión logística y SVM. Todos ellos son códigos de calidad casi de producción.
Un programa de análisis de juegos de ajedrez en F # en Microsoft Research.
Los tres anteriores son mis favoritos. ¿Sugerirás algunas otras fuentes? El software de código abierto de propósito general es bueno, el código abierto especializado como los tres que enumero aquí son aún más bienvenidos .
Echa un vistazo a esta serie de entradas de blog sobre el problema del ratón de biblioteca, son alegres y muestran muy bien el multiparadigismo de F #. El último parece el más "funcional".
Janes Street ha lanzado varias bibliotecas here . En realidad están usando OCaml en un entorno de la industria. En todo caso, me gustaría ver estos.
Para el código Ocaml basado en web, Opa tiene código abierto.
Tiene la fuente de la biblioteca estándar de ocaml que está en o''caml.
Supongo que ya lo has mirado, pero la joroba de la cámara también es una buena fuente: Here
Uno de los aspectos menos cubiertos de OCaml es el sistema de módulos de orden superior. La biblioteca ocamlgraph es un excelente ejemplo de ocamlgraph beneficiarse de esta función de lenguaje.
Quizás también HLVM leer el código fuente de OCaml para mi proyecto HLVM . El código fuente de mi libro OCaml for Scientists (2005) está disponible gratuitamente here pero no es de código abierto. Sin embargo, no se ha actualizado durante varios años y, probablemente, ¡puedes hacerlo mucho mejor hoy!
MLDonkey fue un cliente temprano para compartir archivos que una vez tuvo cientos de miles de usuarios. Esta es una aplicación de código abierto muy concurrente escrita completamente en OCaml, que pesa alrededor de 171,000 líneas de código.
El sincronizador de archivos Unison es otra aplicación de utilidad de código abierto escrita en su totalidad en OCaml, con un peso de 24,000 líneas de código. Esta fue también la primera aplicación popular escrita en un derivado de ML que usó IO asíncrona. Así que todo el código F # que hace async hoy se deriva esencialmente de él.
FFTW es un generador de código para transformadas rápidas de Fourier (FFT), esencialmente una forma muy especializada de compilación optimizada, que ha sido ampliamente adoptada y licenciada para uso comercial, por ejemplo, en el núcleo de MATLAB. Escrito principalmente en OCaml con bastante C y con un peso de 14,000 líneas de código OCaml.
Es posible que también desee leer el código fuente de Hevea y ANT ya que estos son dominios de aplicación bastante clásicos para OCaml, pero también aplicaciones de calidad de producción con miles de usuarios.
No puedo pensar en ningún código F # de código abierto para recomendar. Hay muy poco por ahí y generalmente es de muy mala calidad. La mayoría se lee como Haskell. ;-)
La página de Jean-Christophe Filliâtre tiene numerosos programas y bibliotecas en OCaml.