programacion primer orientada objetos lenguaje historia funcional ejemplos functional-programming

functional programming - orientada - ¿Qué lenguaje de programación funcional debo elegir como primer lenguaje de programación funcional?



programacion funcional pdf (9)

Mi pregunta es cuál es el mejor enfoque para los adolescentes con los que trabajas. Si están dispuestos a aprender algo nuevo y diferente, Scheme es una excelente opción como lenguaje funcional. Es tan básico como vienen. Si quieres mantener una sintaxis más familiar, Haskell podría ser tu respuesta.

Me gustaría aprender un lenguaje de programación funcional para ver un paradigma de programación diferente.

Mi experiencia en programación: Java (acabo de aprobar el examen SCJP), algo de Ruby y Rails muy limitados. Yo uso bash para tareas básicas de administrador de sistemas. Yo uso Ubuntu 9.04.

Como segundo objetivo, me gustaría usar fp para mostrar a los niños (de 14 a 18 años) cómo se interrelacionan las matemáticas y cs. Los chicos son muy buenos en la programación (están aprendiendo Python y Java en la escuela secundaria politécnica desde el primer año). Sin embargo, como muestran las pruebas, tienen dificultades con las matemáticas esp. Conceptos básicos de matemática discreta. Creo que podemos desarrollar sus habilidades matemáticas utilizando la programación (y posiblemente ese sea el tema de mi tesis de capacitación de maestros). Creo que un lenguaje con un vocabulario muy básico serviría mejor a este proyecto.


Mi voto es para Scala o F #, que se pueden descargar de forma gratuita en este momento.

La ventaja aquí es que son lenguajes de paradigma mixtos: en términos nativos son lenguajes funcionales, pero también puede usar la programación imperativa y orientada a objetos. También tienen grandes bibliotecas estándar: Scala monta en la parte posterior de Java y F # tiene todo .NET, por lo que puede programar algo interesante con bastante rapidez.

Scheme y Haskell son lenguajes puramente funcionales, pero desafortunadamente sus bibliotecas estándar son relativamente pequeñas, por lo que es difícil hacer cosas relativamente comunes, como analizar XML o escanear páginas web.


Probaría con Scala. No es puramente funcional, le permite usar una variedad de enfoques, pero gran parte de su conocimiento en Java debería ser portador (está basado en JVM), incluidas las bibliotecas JDK, y es uno de los idiomas más avanzados que he visto.

Si está interesado en aprender las características del lenguaje y ampliar su conocimiento de cómo funcionan los idiomas, no podría imaginar una mejor alternativa.


Scala y Clojure ejecutan la JVM, por lo que es posible que esté más familiarizado con sus entornos.


Si estás haciendo esto para aprender, entonces definitivamente Esquema con SICP . Va a ser difícil y frustrante, y te sorprenderá si no tienes experiencia con estas cosas, pero aprenderás mucho.

Si desea utilizar la programación funcional en la práctica, vale la pena mirar F #, Scala y Clojure.


Si su objetivo principal es trabajar con adolescentes, tiene sentido utilizar la pedagogía y la tecnología de lenguaje funcional que se ha comprobado que funciona con adolescentes, y eso es un esquema PLT (también conocido como DrScheme) con el libro Cómo diseñar programas (también en línea). ). Estos muchachos han obtenido excelentes resultados desde la secundaria hasta el 3er semestre universitario. También tienen recursos para los maestros .

A muchos encuestados les gusta el SICP. Es un libro maravilloso, pero no para aprender de él. Si ya conoce Scheme, es un buen libro para admirar , pero el SICP no tiene tanto que ver con la programación funcional como con más información sobre cómo implementar todas las ideas interesantes conocidas de informática en Scheme.

Si su objetivo principal es aprender un nuevo paradigma de programación, Scheme carece de algunas características que son muy importantes para muchos programadores funcionales:

  • Programación con coincidencia de patrones.
  • Aplicación parcial de las funciones al curry.
  • Un sistema de tipo estático polimórfico.
  • Computación funcional pura

Si quieres ideas interesantes, prueba Haskell ; Haskell hace que sea mucho más difícil programar sus viejos pensamientos en el nuevo idioma. En cambio, Haskell te obliga a pensar nuevos pensamientos. Además de muchos otros recursos, Real World Haskell es gratuito en línea.

Nota final: SO ha tenido muchas preguntas similares sobre el aprendizaje de la programación funcional.


Soy un gran fan de Scheme, sobre todo porque el mejor libro está disponible gratuitamente.


Ya que ya estás familiarizado con Python, ¿por qué no usar sus capacidades funcionales? Para más información, vea este (borrador) HowTo .


Yo voto por Haskell, que tiene las siguientes ventajas:

  • En Haskell, el caso simple es en realidad simple
  • El caso complejo es (generalmente) todavía comprensible para las mentes humanas comunes.
  • Tiene una sintaxis ordinaria que no es muy diferente de otros lenguajes de programación no funcionales (a diferencia de, por ejemplo, Lisp)