Login Barrapunto
diagrams: un EDSL funcional puro en Haskell usando Cairo
Carvan nos cuenta: «[Vía Reddit] Diagrams es un EDSL (embedded domain-specific language) que permite dibujar figuras utilizando Cairo en Haskell. Los EDSL aprovechan todas las ventajas que nos ofrece un lenguaje a la vez que lo extendemos para escribir programas del ámbito que nos ocupa fácilmente. Algunos ejemplos son escribir parsers en el mismo lenguaje o como hablamos en Barrapunto hace algún tiempo escribir librerías de alto rendimiento.»
Historias relacionadas
[+]
Charla sobre Coconut: COde CONstructing User Tool 12 comentarios
Carvan nos cuenta: «Coconut es un sistema para desarrollar software muy seguro y con un alto rendimiento escrito en Haskell. De momento ha sido usado para desarrollar una librería de funciones especiales para el procesador Cell BE, que se distribuye en el Cell BE SDK 3.0 como MASS. Su rendimiento es 4 veces mejor que la alternativa, la librería SimdMath escrita en código C con partes en ensamblador. Parece que en estos tiempos donde la paralelización es tan importante los lenguajes funcionales van a dar que hablar. En Google han dado una conferencia sobre este sistema.»
Este hilo ha sido archivado.
No pueden publicarse nuevos comentarios.
diagrams: un EDSL funcional puro en Haskell usando Cairo
|
Log in/Crear cuenta
| Top
| 5 comentarios
| Buscar hilo
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.

Sobre parsers
(Puntos:3, Interesante)( Última bitácora: Domingo, 15 Junio de 2008, 17:30h )
Sobre escribir parsers hay un tutorial que está muy bien que consiste en escribir un intérprete de Scheme en 48 horas [amherst.edu] aunque para seguirlo bien hay que saber ya algo de Haskell y entender bien conceptos como mónadas y demás. No es que no pueda seguirse sin entender estos conceptos pero no se aprende lo mismo.
[OT] Funcional: ¿cuál y cómo?
(Puntos:2)( http://luis-gonzalo-soto-aboal.neurona.com/ | Última bitácora: Viernes, 07 Septiembre de 2007, 00:19h )
Dicho esto, las dos preguntas son las del título. ¿Cuál? De momento mis opciones son Haskell, Scheme, Erlang, OCaml, Lisp y Scala; y a continuación, lo que más o menos he visto de cada uno de ellos.
Haskell es el más completo y mmmm ¿puro?, pero creo que también el más complicado de aprender desde cero.
Scheme, por estar más orientado al mundo académico es más fácil de aprender (cursos etc.), pero no tiene mucha aplicación en el mundo real, ¿no?
Erlang me atrae principalmente porque yo soy teleco y se usa mucho en el mundo de las Telecomunicaciones, pero la verdad es que aparte de eso no he mirado mucho más.
OCaml se usa también bastante pero no tengo muy claro en qué campos, pero no sé, he mirado algo de código y me cae bien.
Lisp es EL lenguaje, tengo entendido que -aparte de para extender Emacs- se usa en entornos industriales. Y bueno, también es, o sea, super cool saber Lisp xD
Y por último, Scala. La parte buena de Scala es que lo puedo integrar con Java e ir aprendiéndolo poco a poco, pasando de estilo imperativo a estilo funcional conforme me vaya sintiendo cómodo. La parte mala es exactamente la misma: como lo puedo usar igual que Java, es probable que no me sienta "obligado" a aprender.
Faltaría la otra pregunta: ¿cómo? Algún libro que sepáis que es bueno, páginas con ejemplos... De momento me he mirado algún tutorial sencillo tanto de Common Lisp como de OCaml, intenté leerme algo de Haskell pero me parece un poco heavy xD
Así que, ¿qué opináis? ¿Alguna sugerencia?
Tal vez te interese mi perfil en Neurona [neurona.com].
Re:[OT] Funcional: ¿cuál y cómo?
(Puntos:4, Informativo)( Última bitácora: Domingo, 15 Junio de 2008, 17:30h )
Scheme: Aunque no he tocado mucho los lisp's, de la familia de los lisp's Scheme es el que parece más orientado a la programación funcional a primera vista. En cuanto a si tiene aplicación en el mundo real trabajo con Scheme es dificil que encuentres, aunque también lo es con Haskell, aunque ultimamente (no en España) parece que estén cambiando un poco las cosas.
Erlang: Ahora mismo de los lenguajes que nombras parece que es el que tiene más salida. Más que funcional a lo que está orientado Erlang es a ser concurrente, que con los tiempos de multiprocesadores que corren es algo muy interesante (si no eres D. Knuth). Tiene una especie de sistema de procesos asíncronos comunicándose, no lo he probado mucho así que no puedo opinar.
OCaml: Por lo que tengo entendido se usa en el mundo de las finanzas. Si tuviera que compararlo con otro lenguaje sería con Haskell, la diferencia es que Ocaml es menos "puro", ofrece programación funcional pero no es obligatoria, puedes seguir utilizando el paradigma imperativo y orientado a objetos, seguramente sea el lenguaje más "útil" a día de hoy de los que has comentado. Con Haskell también se puede escribir código más o menos imperativo utilizando Mónadas pero esto son conceptos un poco avanzados y que requieren entender bien el lenguaje.
Lisp: Sobre Lisp tampoco lo he tocado mucho pero según tengo entendido Lisp es más multiparadigma que funcional. Cierto que se puede realizar programación funcional con el pero no es uno de los pilares de este lenguaje. Los pilares son más bien que "Datos == Codigo" y la metaprogramación que esto supone, código que escribe código.