Il y a eu beaucoup de recherche sur la création d'interfaces graphiques dans un langage fonctionnel. Il y a des bibliothèques pour le push/pull prf, flèche base de fibre de verre et probablement d'autres supérieur de la recherche aussi. Beaucoup de gens semblent d'accord c'est le plus naturel encore de manière juste au sujet de tout le monde semble être à l'aide de l'impératif de liaison des bibliothèques comme gtk2hs et wxhaskell. Même dans les lieux recommandés comme de bons tutoriels enseigner la liaison à ces plaine impératif bibliothèques. Pourquoi ne pas d'interface basé sur FRP de recherche?
Réponses
Trop de publicités?Presque une année s'est écoulée depuis que ma réponse précédente et les choses ont changé dans le monde de la fonctionnelle de la programmation réactive (PRF).
En particulier, j'ai créé réactif-banane, une petite bibliothèque pour les PRF en Haskell. Tout manque encore quelques fonctionnalités, il est déjà un excellent moyen de mettre en œuvre des Interfaces graphiques dans un style purement fonctionnel, tel que démontré par une série d'exemples. Voici une capture d'écran:
Comme avant, il est également Flapjax, une bibliothèque JavaScript pour PRF dans le navigateur web.
Alors que tout le monde est d'accord que fonctionnel réactif de programmation (FRP) est la voie à suivre pour la mise en œuvre graphique de l'interface utilisateur, pas de bien-arrondie de la bibliothèque pour faire en Haskell n'a encore émergé. Je pense que les raisons principales sont:
- L'équilibrage de l'expressivité VS l'utilisation des ressources est difficile (espace fuites, les problèmes de synchronisation). Le plus expressif de votre PRF modèle, plus il est difficile de mettre en œuvre tout en garantissant l'efficacité. La conception de l'espace est encore en cours d'exploration.
- API de commodité. FRP est bien adapté pour la mise en œuvre de fonctions de la forme
Time -> MouseInput -> Picture
, mais GUI plates-formes comme GTK+ ou de Cacao ne fonctionne pas comme ça, et la question est de savoir comment exprimer le dernier en PRF style sans obtenir de plus compliqué que le style traditionnel.
En d'autres termes, les PRF recherche n'est pas encore terminée.
Cela étant dit, certaines implémentations pratiques existent déjà, par exemple Flapjax, un langage qui se compile en JavaScript.
En tout cas, personne ne peut vous empêcher de mise en œuvre de votre propre PRF bibliothèque adaptée à un usage particulier et grandement profit. Luc Palmer l'a fait avec tant de succès, et je suis en train d'essayer aussi. (Je préfère perdre mon temps avec PRF qu'avec des variables mutables.)
Vieux fil, je le sais, mais Elm ( elm-lang.org ) est en train de devenir le centre névralgique du PRF "réel". Il compile jusqu'à JavaScript et le site Web Elm y est écrit.