2010-01-07 12 views
25

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 cómo diseñar una biblioteca/software durante la lectura del código de otros.Buenos proyectos para aprender OCaml y F #

Tengo las siguientes listas.

  1. Un programa Chess en OCaml por Tomek Czajka.

  2. Hal Daumé ha escrito several machine learning libraries en Ocaml. Incluyendo árboles de decisión, regresión logística y SVM. Todos ellos son código de casi producción de calidad.

  3. Un programa Chess Game Analysis en F # en Microsoft Research.

Los tres anteriores son mis favoritos. ¿Sugerirías algunas otras fuentes? El software de código abierto de propósito general es bueno, fuente abierta especializada como los tres que enumero aquí son aún más bienvenidos.

+0

http://stackoverflow.com/questions/383848/f-open-source-projects –

+0

@Mauricio Gracias por el comentario. Creo que los dos hilos tienen alguna diferencia, ya que aquí los idiomas son Ocaml y F #, no solo F #. Y la lista no es solo para código abierto, sino también para algunos códigos senppts o códigos académicos. –

+0

El software de Hal Daumé ha sido reubicado en [http://www.umiacs.umd.edu/~hal/software.html](http://www.umiacs.umd.edu/~hal/software.html). –

Respuesta

2

Bueno, Unison se ha recomendado a mí para echar un vistazo a, así como la solución de diversos problemas de Project Euler, pero personalmente hacer más cosas por escribir mis propias prácticas programas, por lo que probablemente será la adaptación de uno de ésos en OCaml, para ver cómo va.

1

Tiene la fuente de la biblioteca estándar ocaml que está en o'caml.

supongo que ya ha visitado, pero la joroba caml es una buena fuente también: Here

+1

La biblioteca estándar OCaml no está particularmente bien escrita Código OCaml. –

5

Calle Janes ha publicado varias bibliotecas here. En realidad están usando OCaml en un entorno industrial. En todo caso, verificaría esto.

11

Uno de los aspectos menos bien cubierto de OCaml es el sistema de módulos de orden superior. La biblioteca ocamlgraph es un excelente ejemplo de los beneficios de esta característica de idioma.

También puede leer el código fuente de OCaml en mi proyecto HLVM. El código fuente de mi libro OCaml for Scientists (2005) está disponible gratuitamente en here pero no es de código abierto. Sin embargo, no se ha actualizado durante varios años y probablemente puedas hacerlo mucho mejor hoy.

MLDonkey fue un cliente de uso compartido temprano de 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, con un peso de 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 completamente en OCaml, con un peso de 24,000 líneas de código. Esta fue también la primera aplicación popular escrita en una derivada ML para haber utilizado IO asíncrona. Así que todo el código F # que hace async hoy en día 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 de optimización, que ha sido ampliamente adoptada y licenciada para uso comercial, p. en el centro de MATLAB. Escrito principalmente en OCaml con bastante C y un peso de 14,000 líneas de código OCaml.

También puede leer el código fuente 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 en general es de muy mala calidad. La mayoría se lee como Haskell. ;-)

0

Para el código Ocaml basado en web Opa tiene fuente abierta all all code también.

Cuestiones relacionadas