2010-02-05 21 views
11

Desde hace una semana estoy leyendo Programación en Scala. Los autores introducen elementos del lenguaje paso a paso, pero todavía estoy confundido cuando uso elementos funcionales como actores, cierres, currying, ...Catálogo de Scala de patrones de diseño funcional

Estoy buscando un catálogo de casos de uso típico o mejores prácticas para contructos funcionales.

no me refiero a reimplementar patrón bien conocido como GoF en Scala como

Respuesta

8

Al ser confundido acerca de cuándo utilizar cierres o currificación es como estar confundido acerca de cuándo utilizar las clases. Son solo parte del lenguaje y sirven para cualquier tarea que se le plantee. Cuando OO llegó por primera vez a la corriente principal, se hizo casi la misma pregunta a las clases.

En cuanto a los actores, son un paradigma de programación distribuida, y no, por supuesto, parte del lenguaje en sí. Se usan cuando desea aprovechar la concurrencia, y su aplicación no necesita compartir estado entre procesos concurrentes, ni está principalmente orientada al procesamiento paralelo.

+1

Probablemente tengas razón, estoy familiarizado con OO y entiendo tu respuesta. Para OO, podría haber preguntado cuándo usar herencia o agregación, cuándo debería tener una interfaz, etc. Para estas preguntas uno encontraría muchos recursos, pero cuándo usar qué construcción funcional es un poco difícil sin ninguna experiencia. Un enlace a una discusión de estos temas estaría bien. – stacker

+2

@stacker Eso es cierto, y yo mismo no sé mucho qué recomendar. Algunos libros, como The Little Schemer y The Seasoned Schemer, de Daniel Friedman, o Purely Functional Data Structures, de Chris Okasaki, pueden ayudar a algunos. Pero no hay nada por ahí como Scala. Por ejemplo, la opción de tener currying es bastante rara. En la mayoría de los idiomas, o todo está al curry, o nada lo es. Y, por supuesto, la mezcla de OO hace que sea aún más difícil elegir un enfoque. –

+1

Encontré este útil sitio: http://scala.sygneca.com/code/start – stacker