2010-11-12 6 views
5

Je suis désolé si je pose une mauvaise question, mais j'ai vraiment besoin d'une aide professionnelle. Je dois faire un projet assez complexe pour un débutant, en utilisant Visual Haskell, pour un cours de programmation fonctionnelle. Le problème est que parce que je suis au début je ne sais pas quel genre de thème choisir. Je veux faire un projet qui met en évidence l'utilité réelle de la programmation fonctionnelle. Si vous pouviez me donner quelques idées, je serais très reconnaissant.Projets utiles dans Haskell

Merci

+0

L'enseignant a-t-il reçu d'autres directives? – MatrixFrog

+0

Non, il ne nous a pas donné d'autres directives – izayoi

Répondre

3

veulent faire un projet qui evidentiates l'utilité réelle de programmation fonctionnelle. Si vous pouviez juste me donner quelques idées, je serais très reconnaissant.

Très bien, alors laissez-moi vous dire quelque chose. La programmation est sur l'expression. Les langages fonctionnels vous permettent d'exprimer les choses différemment. Quels sont les avantages des expressions rendues possibles avec la programmation fonctionnelle?

Les listes infinies et la récursion peuvent être exprimées très simplement.

La récursivité est une programmation fonctionnelle effectuée correctement. Essayez de mettre en œuvre des algorithmes et des structures de données qui l'utilisent. Arbres équilibrés, fibonacci, algorithme euclidien, tout ce qui va en bénéficier. Vraiment, tout ce qui comporte un arbre peut être exprimé très élégamment dans des langages fonctionnels.

Essayez les problèmes mathématiques, essayez de résoudre le Euler Problems avec Haskell.

+0

Exemple de listes infinies: 'fibs = 0: 1: zipWith (+) fibs (tail fibs)'. Meilleure implémentation de fibonacci. – delnan

+0

@delnan: Mieux utiliser @ -Patterns ...;) – fuz

+0

@FUZxxl: Pourquoi m'avoir rabaissé, merci de m'expliquer. – Falcon

5

Vous pouvez concevoir un langage de programmation simple et écrire un interprète pour lui:
Vérifiez les outils Alex (http://www.haskell.org/alex/) pour l'analyse lexicale, et heureux (http://www.haskell.org/happy/) pour analyser votre code.

Vous pouvez rendre la langue aussi complexe que vous le souhaitez. Je pense que la définition des boucles While et des fonctions pourrait le rendre suffisamment complexe et satisfaisant pour un débutant.

+3

Parsec est également très utilisable. – delnan

+2

Trois hourras pour parsec. Haskell est trop puissant pour avoir besoin d'un générateur d'analyseur. – luqui