Si vous souhaitez obtenir une sensation pour le fibre de verre, vous pourriez commencer avec l'ancien Fran tutoriel à partir de 1998, qui a des illustrations animées. Pour les livres, commencer avec Fonctionnel Réactif de l'Animation et le suivi des liens sur le lien publications sur ma page d'accueil et le PRF lien sur le Haskell wiki.
Personnellement, j'aime à penser à ce que les PRF moyens, plutôt que la façon dont elle pourrait être mise en œuvre.
Donc, je ne décrivent pas PRF dans la représentation/mise en œuvre des termes que Thomas K dans une autre réponse (graphiques, des nœuds, arêtes, de tir, de l'exécution, etc).
Il existe de nombreux styles de mise en œuvre, mais pas de la mise en œuvre dit ce PRF est.
Je ne résonnent avec Laurence G est simple description de FRP est sur "les types de données qui représentent une valeur 'dans le temps' ".
Classiques de programmation impératif capture dynamique de ces valeurs ne sont qu'indirectement, par l'intermédiaire de l'état et des mutations.
L'histoire complète (passé, présent, futur) n'a pas de première classe de la représentation.
En outre, seulement discrètement l'évolution des valeurs peut être (indirectement) capturés, depuis l'impératif de paradigme est temporellement discrète.
En revanche, les PRF capture à l'évolution des valeurs directement et n'a pas de difficulté avec en permanence l'évolution des valeurs.
FRP est également inhabituel en ce qu'il est simultanées sans aller à l'encontre de la partie théorique et pragmatique des rats nid que fléaux impératif de la concurrence.
Sémantiquement, PRF simultanéité est fine, déterminée, et continue.
(Je parle de la signification, pas de mise en œuvre. Une mise en œuvre peut ou peut ne pas impliquer de la simultanéité ou de parallélisme.)
Sémantique déterminisme est très important pour le raisonnement, à la fois rigoureux et informelle.
Alors que la simultanéité ajoute une énorme complexité de la programmation impérative (en raison de non-déterministes interleaving), c'est sans effort dans les PRF.
Alors, qu'est-PRF?
Vous pourriez avoir inventé vous-même.
Commencez avec ces idées:
Dynamique et de l'évolution des valeurs (c'est à dire, les valeurs de "plus de temps") sont de première classe, des valeurs en elles-mêmes. Vous pouvez les définir et de les combiner, de les transmettre dans et hors de fonctions. J'ai appelé ces choses "comportements".
Les comportements sont construites à partir de quelques primitives, comme constante (statique) des comportements et de l'heure (comme une horloge), puis avec séquentielle et parallèle combinaison. n les comportements sont combinées par l'application d'un n-aire fonction (à valeurs statiques), "point-sage", c'est à dire, en continu au fil du temps.
Pour rendre compte de phénomènes discrets, ont un autre type (famille) des "événements", dont chacune a un flux (finie ou infinie) d'occurrences. Chaque événement est associé à un temps et de valeur.
À venir avec la composition de vocabulaire à partir de laquelle tous les comportements et les événements peuvent être construits, de jouer avec quelques exemples. Garder la déconstruction en morceaux qui sont plus générales/simple.
De sorte que vous savez que vous êtes sur la terre ferme, donnent à l'ensemble un modèle de composition de la fondation, en utilisant la technique de denotational sémantique, ce qui signifie simplement que (un) de chaque type correspond à un de simple et de mathématique précise le type de "sens", et (b) chaque primitive et l'opérateur a un de simple et de sens précis en fonction de la signification des mandants.
Jamais, jamais mélanger les considérations de mise en œuvre dans votre processus d'exploration. Si cette description est du charabia pour vous, consultez (a) Denotational de conception de type de classe morphisms, (b) Push-pull fonctionnel réactif de programmation (en ignorant la mise en œuvre bits), et (c) la Denotational Sémantique Haskell wikibooks page. Méfiez-vous que denotational sémantique est en deux parties, à partir de ses deux fondateurs Christopher Strachey et Dana Scott: le plus facile & plus utile Strachey partie et la plus difficile et la moins utile (pour la conception de logiciels) Scott.
Si vous vous en tenez à ces principes, je m'attends à obtenir quelque chose de plus ou moins dans l'esprit de FRP.
Où avais-je obtenir ces principes? Dans la conception de logiciel, je demande toujours la même question: "que signifie-t-il?".
Denotational sémantique m'a donné un cadre précis pour cette question, et celle qui correspond à mon esthétique (contrairement à opérationnelles ou de la sémantique axiomatique, qui me laisse insatisfaits).
Alors je me suis demandé qu'est-ce que le comportement?
J'ai vite réalisé que le temporellement nature discrète de l'impératif de calcul est une adaptation à un style particulier de la machine, plutôt que d'un naturel description du comportement lui-même.
Le plus simple description précise de comportement à laquelle je pense est tout simplement "fonction (continue) de temps", c'est mon modèle.
Délicieusement, ce modèle gère en continu, déterministe de la simultanéité avec la facilité et la grâce.
C'est tout un défi pour mettre en œuvre ce modèle correctement et efficacement, mais c'est une autre histoire.