Interessante Sicht auf die PLO - Seite 12

 
fxsaber:

Ich verstehe, dass es eine Frage der Gewohnheit und der Kenntnis der Syntax ist, aber ich finde es sehr schwer, in den Code zu kommen, obwohl ich der Autor des Originals bin.

Leider kann ich MQL nicht im FP-Stil verwenden. Kurz gesagt wird folgender Ansatz verfolgt: Es gibt Angebotsbedingungen (PammSet) und es gibt Funktionen, die die Bedingungen in das finanzielle Ergebnis umwandeln (AccountRecord). Beide Typen sind unveränderlich und werden bei der Erstellung festgelegt. Die Aufgabe besteht darin, eine Menge von Angeboten zu erstellen und jedes Element dieser Menge mit dem finanziellen Ergebnis durch die Mapping-Funktion (Set1, Set2, Set3) zu vergleichen. Das Schlüsselelement ist die SELECT-Funktion, die eine beliebige Funktion wie Func<in, out> auf jedes Element der Sequenz anwendet.

 

Jacques Fresco über FP und PLO


 
Und wie unterscheidet sich dieses FP grundlegend von der Verwendung von Funktionszeigern?
 
Dmitry Fedoseev:
Und wie unterscheidet sich dies grundlegend von der Verwendung von Zeigern auf Funktionen?

Es ist nur so, dass FP eine bequemere Syntax hat.

so viel bequemer, dass die gesamte Code-Architektur darauf basiert

Sie könnten zum Beispiel einen Block erstellen, der eine Aufgabe erhält, die ausgeführt wird, wenn die Maus angeklickt wird .... zum Beispiel für die grafische Benutzeroberfläche.

und dort können Sie die Aufrufe in einer Liste zusammenfassen und den auszuführenden Auftrag ganz einfach hinzufügen

Beispiel

Button1.MouseClickAdd(() => (hier ist ein Link zu unserer Funktion im Stil von Funk();))

In diesem Fall kann eine solche Einstellung, nämlich die Aufgabe, vom Benutzer hinzugefügt werden, der den Code unserer Symbolleiste verwendet, um seine Aktionen auf den Schaltflächen zu konfigurieren....

In diesem Fall wird die Bindung der Funktion aus dem Anwendungsbereich übernommen, d.h. eine Klasse kann zu allem hinzugefügt werden. Wir fügen also nicht das Endergebnis der Funktion hinzu, sondern die Funktion, die ausgeführt (aufgerufen) wird, wenn diese Bedingung eintritt.

 
Dmitry Fedoseev:
Und wie unterscheidet sich dieses FP grundlegend von der Verwendung von Funktionszeigern?

FP ist eine Implementierung des Lambda-Kalküls, und die imperative Programmierung (zu der auch OOP gehört) ist eine Implementierung der Turing-Maschine.

 
Aleksey Nikolayev:

FP ist eine Implementierung des Lambda-Kalküls, und die imperative Programmierung (zu der auch OOP gehört) ist eine Implementierung der Turing-Maschine.

Das macht Sinn)

 

Ich glaube, wir sprechen hier über "Fliegen und Koteletts".

Wenn FP ein hervorragender Ersatz für OOP ist, zeigen Sie mir ein Beispiel für eine in FP implementierte GUI, nicht das obige Beispiel

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

sondern ein Beispiel für die Schaltflächen, Kontrollkästchen, Bildlaufleisten usw. - alle in FP hergestellt.


imho, wenn FP dazu beiträgt, die Formalisierung und Problemlösung zu vereinfachen, um nicht die Abhängigkeit vonC++ von der linearen Codeausführung (von oben nach unten) zu schaffen - gut! aber die Diskussion, dass FP eine Alternative zu OOP ist (die sich aus dem prozeduralen Stil entwickelt hat), ist imho ein weiterer Vergleich von heiß und kalt

 
Igor Makanu:

Ich glaube, wir sprechen hier über "Fliegen und Koteletts".

Wenn FP ein hervorragender Ersatz für OOP ist, zeigen Sie mir ein Beispiel für eine in FP implementierte GUI, nicht das obige Beispiel

sondern ein Beispiel für die Schaltflächen, Kontrollkästchen, Bildlaufleisten usw. - alle in FP hergestellt.


imho, wenn FP dazu beiträgt, die Formalisierung und Problemlösung zu vereinfachen, um nicht die Abhängigkeit vonC++ von der linearen Codeausführung (von oben nach unten) zu schaffen - gut! aber zu diskutieren, dass FP eine Alternative zu OOP ist (die aus einem prozeduralen Stil entstanden ist), ist imho ein weiterer Vergleich zwischen warm und weich.

Gerade hier verhindert das eine das andere nicht, sondern ergänzt es.

Und wenn man will, kann man auch alles in FP wie in OOP mit Tyke's Struktur erstellen - obwohl das eine sehr zweifelhafte Aufgabe ist
 
Alexandr Andreev:

Hier stört das eine das andere nicht, sondern ergänzt es.

Das ist es, worüber ich schreibe

und der Artikel aus dem ersten Beitrag dieses Themas versucht, zwei völlig unterschiedliche Programmierparadigmen miteinander zu vergleichen, was den Zweck betrifft

 
Aleksey Nikolayev:

FP ist eine Implementierung des Lambda-Kalküls, und die imperative Programmierung (zu der auch OOP gehört) ist eine Implementierung der Turing-Maschine.

Ausführlich! Ich würde nicht mehr hinzufügen ))