2010-02-05 3 views
11

Depuis une semaine, je lis la programmation en Scala. Les auteurs introduisent des éléments de la langue pas à pas, mais je suis toujours confus quand utiliser les choses fonctionnelles comme les acteurs, fermetures, curry, ....Scala Catalogue de motifs de conception fonctionnelle

Je cherche un catalogue de cas d'utilisation typique ou les meilleures pratiques pour les constructions fonctionnelles.

Je ne veux pas réimplémentant modèle bien connu comme GoF à Scala comme

Répondre

8

être confus quant à son utilisation ou la fermeture curryfication est comme être confus quand utiliser les classes. Ils sont juste une partie de la langue, et servent toute tâche que vous mettez à. Quand OO a atteint le courant principal, à peu près la même question a été posée aux classes. En ce qui concerne les acteurs, ils sont un paradigme de programmation distribuée - et non, voyez-vous, une partie du langage lui-même. Ils sont utilisés lorsque vous souhaitez tirer parti de la concurrence, et que votre application n'a pas besoin de partager l'état entre les processus concurrents, ni qu'elle est principalement orientée vers le traitement parallèle.

+1

Vous avez probablement raison, je connais OO et je comprends votre réponse. Pour OO, j'aurais pu demander quand utiliser l'héritage ou l'agrégation, quand devrais-je avoir une interface et ainsi de suite. Pour ces questions on trouverait beaucoup de ressources mais quand utiliser quelle construction fonctionnelle est un peu dure sans expérience. Un lien vers une discussion de ces sujets serait bien. – stacker

+2

@stacker C'est vrai, et moi, je ne sais pas trop quoi recommander. Certains livres, tels que The Little Schemer et The Seasoned Schemer, de Daniel Friedman, ou Purely Functional Data Structures, de Chris Okasaki, pourraient aider certains. Mais il n'y a rien là-bas comme Scala. Par exemple, l'option d'avoir currying est plutôt rare. Dans la plupart des langues, tout est curry ou rien n'est. Et, bien sûr, le mélange de OO rend encore plus difficile de choisir une approche. –

+1

J'ai trouvé ce site utile: http://scala.sygneca.com/code/start – stacker

Questions connexes