tutorial react programming programacion paradigmas paradigma functional funcional example ejemplos functional-programming

functional-programming - programming - programacion funcional react



ProgramaciĆ³n funcional: Mejor plataforma/entorno (9)

Mira a Scala . Se dirige a la JVM, interopera con Java y tiene muchas características de programación funcional de última generación.

Últimamente he estado investigando y jugando con la programación funcional, solo para ampliar mi pensamiento sobre la programación, porque me resulta difícil "funcionalmente".

Descargué Glasgow Haskell y experimenté con eso.

Lo que me pregunto es, ¿cuál es la mejor plataforma para que Windows experimente con FP? Preferiría un enfoque basado en JVM, pero otra publicación en SO ha indicado que no se puede implementar un lenguaje FP real en la JVM debido a la falta de soporte para la recursividad final. ¿Lo que usted dice?

EDITAR: Como he dicho, he experimentado bastante con Haskell; siguiendo el consejo de una de las respuestas, he estado revisando el sitio web de Scala. Mirando los ejemplos de Scala, el código parece más "familiar" (mis antecedentes son C y Java), pero parece decididamente más OO / procedural y menos funcional. Una gran ventaja de Scala sería que me da otra herramienta de lenguaje para usar junto con Java y podría convertirse en otra flecha en mi carcaj profesional actual, en lugar de ser solo un ejercicio de aprendizaje. Cuando llegue más lejos en Scala, ¿los aspectos funcionales se volverán más predominantes, o tenderé a terminar simplemente escribiendo código OO con alguna influencia funcional? En otras palabras, ¿desafiará Haskell mis ideas preconcebidas más duro y más rápido que Scala?


Recomiendo PLT Scheme y SICP . El lenguaje es tan simple que puede acceder a los conceptos importantes muy rápidamente.


En otras palabras, ¿desafiará Haskell mis ideas preconcebidas más duro y más rápido que Scala?

Sí.

Si realmente quieres aprender, aléjate de tu zona de confort.

¿De todos modos, vas a usar Scala para el código de producción en los próximos 3 meses?


Alguna vez has probado Prolog? ... eso va

?- bend(your_mind). Yes ?- bend(X). X = your_mind

Me dio una perspectiva completamente nueva de todos modos ... mucha información por ahí


De ninguna manera Scala va a doblar tu mente en ninguna parte tanto como lo hará Haskell. La razón principal para elegir Scala sobre Haskell cuando se aprende FP es darse una introducción más suave a las peligrosas tierras salvajes de mónadas, funcionadores y bondad de orden superior. Scala es genial si vienes de un fondo orientado a objetos tratando de convertir ese conocimiento en tierra funcional. No es tan bueno si quieres sumergirte de cabeza en la parte más profunda.

Dado lo que estás preguntando, recomendaría a GHC Haskell. Nada va a deformar tu cabeza tanto como eso. :-) Dicho esto, creo que deberías vigilar a Scala. Hay muchos aspectos del lenguaje que son positivamente únicos, en particular su sistema de tipos (subtipos estructural + nominal == dulce). No va a dolerle la cabeza tanto como a Haskell, pero le dará una idea de algunos conceptos que quizás no encuentre en ningún otro lado, particularmente la metodología llamada "programación tipográfica".

Ah, y para responder a la segunda parte de su pregunta (FP vs OO en Scala), tiendo a escribir mi código en un estilo funcional dentro de un marco orientado a objetos. Es un poco difícil de describir, pero así son las cosas. Piense en ello como diseñar una API desde un punto de vista orientado a objetos pero implementando todo en un estilo funcional. Mantengo las cosas inmutables y paso mucho tiempo usando métodos de orden superior, pero lo hago todo dentro de los límites de la herencia y el subtipado nominal convencional. De vez en cuando, todavía escribiré algo imprescindible, pero solo cuando sea más limpio hacerlo que usar el estilo funcional.


Me encanta usar Haskell y GHC. GHC incluye un intérprete interactivo (GHCI) y tiene mensajes de error maravillosamente útiles. Además, Haskell es uno de los mejores ejemplos de un lenguaje verdaderamente funcional, y no demasiado malo para usar una vez que experimentas con él un poco. Además, tiene un impresionante sistema de tipos.


Si realmente quieres aprender a pensar de una manera funcional, Haskell es definitivamente la opción correcta. Casi todos los demás idiomas que existen te permiten deslizarte a un estilo imperativo con demasiada facilidad. Haskell te forzará a una mentalidad funcional. Esto me pareció indispensable al aprender. (Ciertamente puede ser más disciplinado de lo que soy, por supuesto, pero ¿por qué impulsar su suerte?)

Cuando esté satisfecho con lo que ha aprendido de Haskell (¡que será mucho!), Estará listo para evaluar idiomas funcionales más liberales como Clojure o Scala. O puedes quedarte con Haskell, cuya situación en la biblioteca tampoco es realmente tan mala. En ese punto, es una cuestión de circunstancia y preferencia personal. Pero para hacer esa elección, haber aprendido a pensar de una manera funcional "pura" primero es, creo, vital.



Echa un vistazo a F # . El CLR tiene una instrucción .tail para que pueda escribir el código F # con las llamadas finales que no causan un (la excepción, no el sitio web). Aquí hay un video introductorio sobre F # de PDC.