Festpunkt-Kombinierer in C ++

7

Ich interessiere mich für aktuelle Beispiele für die Verwendung von Festkomma-Kombinatoren (z. B. y-combinator in C ++: Haben Sie jemals einen Fixpunktkombinator mit Ei oder binden im echten Live-Code?

Ich fand dieses Beispiel in Ei ein wenig dicht:

%Vor%

Können Sie erklären, wie das alles funktioniert?

Gibt es ein nettes einfaches Beispiel, vielleicht mit Bindung mit vielleicht weniger Abhängigkeiten als diese?

    
1800 INFORMATION 30.09.2008, 07:29
quelle

3 Antworten

29

Hier ist der gleiche Code, der in boost::bind konvertiert wurde, der y-Kombinator und seine Anwendungsstelle in der Hauptfunktion. Ich hoffe, das hilft.

%Vor%     
Ted 30.09.2008, 18:13
quelle
7
%Vor%     
matthewtff 15.08.2012 11:48
quelle
3
  

Können Sie erklären, wie das alles funktioniert?

fix2 ist ein y-Kombinator (speziell ist es ein Kombinator für Funktionen mit zwei Argumenten; das erste Argument ist die Funktion (zum Zweck der Rekursion), das zweite Argument ist ein "richtiges" Funktionsargument). Es erstellt rekursive Funktionen.

bll :: ret (...) scheint eine Form eines Funktionsobjekts zu erstellen, dessen Hauptteil

ist %Vor%

Das "faul" ist vermutlich da, um eine unendliche Erweiterung des ersten (Funktions) -Arguments aufzuhalten (lies den Unterschied zwischen faulen und strengen y-Kombinatoren, um zu sehen, warum).

Der Code ist ziemlich schrecklich. Anonyme Funktionen sind gut zu haben, aber die Hacker, die sich mit der fehlenden syntaktischen Unterstützung von C ++ beschäftigen, sind nicht die Mühe wert.

    
DrPizza 30.09.2008 19:15
quelle

Tags und Links