41 votes

Apprendre la programmation fonctionnelle/Clojure - exercices pratiques ?

J'apprends la programmation fonctionnelle avec Clojure. Quels exercices pratiques pouvez-vous me recommander ? Des dépôts en ligne avec des solutions seraient parfaits.

Une idée qui me vient à l'esprit est de passer en revue tous les algorithmes populaires sur le tri, les arbres, les graphes, etc. et de les implémenter moi-même en Clojure. Bien que cela puisse fonctionner, cela risque d'être assez raide et je risque de le faire de manière inefficace (par rapport à quelqu'un qui sait ce qu'il fait).

23voto

amalloy Points 29125

4clojure a été lancé récemment. Il s'inspire beaucoup de Functional Koans et de plusieurs des énigmes de 99 Lisp Problems, mais il les améliore en proposant une expérience d'apprentissage pour laquelle vous n'avez besoin que de votre navigateur.

Les problèmes varient en difficulté, allant des didacticiels de langue comme le Quel est le deuxième élément de cette liste ? à des questions qui suscitent la réflexion, telles que Est-il possible d'arranger ces N mots de manière à ce que chacun diffère du précédent d'au plus un caractère ? et d'autres problèmes s'ajoutent chaque jour.

18voto

Michiel Borkent Points 11503

Je recommande de faire les exercices du projet Euler :

http://projecteuler.net/

Le projet Euler est un s mathématique/informatique stimulante de programmation informatique qui nécessiteront plus que de simples connaissances mathématiques pour les résoudre. Bien que les mathématiques vous aideront à trouver des solutions élégantes et méthodes élégantes et efficaces, l'utilisation d'un d'un ordinateur et de compétences en programmation pour résoudre la plupart des problèmes.

Comme de nombreux programmeurs résolvent les exercices du projet Euler, vous pouvez comparer les solutions à d'autres langages de programmation (non fonctionnels), mais des solutions Clojure sont également disponibles : http://clojure-euler.wikispaces.com/ afin d'opposer Clojure impératif à Clojure fonctionnel/idiomatique.

Bien entendu, vous apprendrez le plus en faisant d'abord les exercices vous-même, sans consulter les solutions.

13voto

sepp2k Points 157757

Essayer 99 Problèmes Lisp . Les solutions ne sont pas en clojure, mais elles devraient être faciles à traduire.

11voto

j-g-faustus Points 4315

J'ai récemment commencé à apprendre Clojure, et j'ai trouvé que labrepl utiles.

Il vous permet de vous familiariser avec les bases et le REPL, contient un certain nombre d'exercices et décrit pas mal de choses non évidentes qu'il est difficile de trouver dans la documentation puisque vous ne savez pas encore ce que vous cherchez.

Recommandé.

Éditer

De même, le Défi Python Une série d'énigmes qui peuvent être résolues par quelques lignes de programmation ; la solution d'une énigme vous donne l'URL à visiter pour l'énigme suivante.

Bien qu'il ne s'agisse pas spécifiquement de Clojure, les puzzles sont assez divertissants et constituent un bon moyen de se familiariser avec un nouveau langage, selon moi. (Il y a quelques puzzles qui sont spécifiques à Python, mais la majorité ne l'est pas. Voir la page forum pour Python Challenge Hints en cas de blocage).

Le défi Python diffère des tâches Euler en ce sens qu'il est plus pratique et moins axé sur les mathématiques ; les tâches comprennent des éléments tels que le filtrage des octets d'une image et le suivi de liens hypertextes par programme.

8voto

pauldoo Points 5020

Il existe des Koans fonctionnels pour Clojure : https://github.com/functional-koans/clojure-koans

Je n'ai pas encore eu le temps de les essayer, mais j'ai entendu de bonnes critiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X