2010-02-06 2 views
1

Je regarde quelques conférences sur la programmation fonctionnelle et la structure de données principale pour ainsi dire, mais il n'y en a pas vraiment dans FP, c'est des listes, donc ma question est: quand on s'occupe beaucoup des bases de données et des listes 'des données, alors la programmation fonctionnelle n'est-elle pas supérieure à la POO?Programmation fonctionnelle mieux pour manipuler des listes de données de base de données?

+0

http://stackoverflow.com/questions/330371/are-databases-and-functional-programming-at-odds pose la même question avec le sens opposé et semble bien répondre. Également en rapport: http://stackoverflow.com/questions/218190/is-functional-to-relational-mapping-easier-than-object-to-relational and – dmckee

Répondre

2

Bien, Lisp traite des listes, mais les listes sont hétérogènes, et peuvent bien représenter un arbre. D'autres langages, comme Haskell, vous donnent des types structurés, nommés et non nommés, et - contrairement à lisp - permettent la vérification de type statique. Une des choses que les langages fonctionnels purs ne possèdent pas est la notion de variables avec état pouvant être assignées. Certaines implémentations Lisp fournissent un tel état - vous obtenez un opeator setq -, contrairement à Haskell. Lire et écrire des bases de données, cependant, est tout à propos d'avoir l'état - et beaucoup de cela, c'est ce que les bases de données sont - et de lire et d'écrire dedans. Donc, opérer sur une base de données est tout le contraire de l'utilisation d'un langage fonctionnel.

Il est cependant judicieux de créer un langage de requête de base de données qui exprime les opérations de base de données de manière non impérative, mais de manière déclarative, et donc fonctionnelle. C'est ainsi que SQL a du sens, et c'est aussi la façon dont la définition de LINQ est logique. Donc, il est logique d'avoir un langage de base de données qui soit fonctionnel, mais ce n'est pas à cause des listes.

+0

J'accepte votre réponse, parce que je pense que votre explication est bonne! Tu m'as donné plus de compréhension! Merci!! :) –

6

L'une des plus grandes améliorations dans la lecture des bases de données au cours des dernières années est LINQ. LINQ est basé sur beaucoup de principes de programmation fonctionnelle. En fait, SQL est aussi un langage de style très fonctionnel.

Je ne vois aucun problème à lire les données d'une base de données en utilisant un langage fonctionnel. Maintenant, modifier la base de données ... c'est une autre histoire.

Je vais laisser ça pour un autre jour. :)

Questions connexes