Un point de vue intéressant sur l'OLP - page 12

 
fxsaber:

Je comprends que c'est une question d'habitude et de connaissance de la syntaxe, mais je trouve très difficile d'entrer dans le code, même si je suis l'auteur de l'original.

Malheureusement, je ne peux pas utiliser MQL dans le style FP. En bref, l'approche suivante est exploitée : il existe des conditions d'offre (PammSet) et des fonctions qui convertissent les conditions en résultat financier (AccountRecord). Les deux types sont invariants et définis à la création. La tâche consiste à générer un ensemble d'offres et à comparer chaque élément de cet ensemble avec le résultat financier au moyen de la fonction de mise en correspondance (Set1, Set2, Set3). L'élément clé est la fonction SELECT qui applique une fonction arbitraire comme Func<in, out> à chaque élément de la séquence.

 

Jacques Fresco sur le FP et l'OLP


 
Et en quoi cette PF est-elle fondamentalement différente de l'utilisation des pointeurs de fonction ?
 
Dmitry Fedoseev:
Et en quoi est-ce fondamentalement différent de l'utilisation de pointeurs vers des fonctions ?

c'est vrai, c'est juste que la syntaxe FP est plus pratique.

tellement plus pratique que l'architecture entière du code est basée sur elle

Par exemple, vous pouvez créer un bloc qui recevra une tâche qui s'exécutera lorsque la souris sera cliquée ..... par exemple pour l'interface graphique.

et là, vous pouvez regrouper les appels dans une liste et ajouter la tâche à exécuter tout simplement

exemple

Button1.MouseClickAdd(() => (voici un lien vers notre fonction dans le style de Funk() ;))

dans ce cas, ce paramètre, à savoir la tâche, peut être ajouté par l'utilisateur, qui utilise le code de notre barre d'outils pour configurer ses actions sur les boutons.....

dans ce cas, la liaison de la fonction sera prise dans la portée. c'est-à-dire qu'une classe peut être ajoutée à n'importe quoi. Ainsi, nous n'ajoutons pas le résultat final de la fonction, mais la fonction à exécuter (appelée) lorsque cette condition se produit.

 
Dmitry Fedoseev:
Et en quoi cette PF est-elle fondamentalement différente de l'utilisation des pointeurs de fonction ?

La PF est une implémentation du lambda-calcul, et la programmation impérative (qui inclut la POO) est une implémentation de la machine de Turing.

 
Aleksey Nikolayev:

La PF est une implémentation du lambda-calcul, et la programmation impérative (qui inclut la POO) est une implémentation de la machine de Turing.

C'est logique)

 

Je pense que nous discutons de "mouches et d'escalopes".

Si la PF est un excellent substitut à la POO, montrez-moi un exemple d'interface graphique implémentée en PF, et non l'exemple ci-dessus.

Кнопка1.MouseClickAdd(()=>(тут ссылка на нашу функцию в стиле Funk();))

mais un exemple des boutons, cases à cocher, barres de défilement, etc. - tous fabriqués en FP.


je pense que si la PF aide à simplifier la formalisation et la résolution de problèmes, afin de ne pas créer une dépendance duC++ sur l'exécution linéaire du code (de haut en bas) - très bien ! mais discuter que la PF est une alternative à la POO (qui s'est développée à partir du style procédural), je pense que c'est une autre comparaison entre le chaud et le froid.

 
Igor Makanu:

Je pense que nous discutons de "mouches et d'escalopes".

Si la PF est un excellent substitut à la POO, montrez-moi un exemple d'interface graphique implémentée en PF, et non l'exemple ci-dessus.

mais un exemple des boutons, cases à cocher, barres de défilement, etc. - tous fabriqués en FP.


Je pense que si la PF aide à simplifier la formalisation et la résolution de problèmes, afin de ne pas créer une dépendance duC++ sur l'exécution linéaire du code (de haut en bas) - très bien ! mais discuter que la PF est une alternative à la POO (qui s'est développée à partir d'un style procédural), je pense qu'une autre comparaison entre le chaud et le mou.

Dans ce cas précis, l'un n'empêche pas l'autre, mais le complète.

Et si vous voulez, vous pouvez également tout créer en FP comme en OOP avec la structure de Tyke - bien que ce soit une tâche très douteuse
 
Alexandr Andreev:

Dans ce cas, l'un n'interfère pas avec l'autre, mais le complète.

c'est sur ce sujet que j'écris

et l'article du premier message du fil de discussion, tente de comparer deux paradigmes de programmation complètement différents, en termes d'objectifs.

 
Aleksey Nikolayev:

La PF est une implémentation du lambda-calcul, et la programmation impérative (qui inclut la POO) est une implémentation de la machine de Turing.

Exhaustif ! Je n'en ajouterais pas plus ;)