Verwenden Sie im Allgemeinen die Sprache, in der es am einfachsten ist, die Lösung eines Problems auszudrücken. Für die funktionale Programmierung ist dies der Fall, wenn die Lösung eines Problems leicht in Funktionen ausgedrückt werden kann , daher der Name. Im Allgemeinen ist es gut für mathematische Operationen, KI, Mustervergleich; Im Allgemeinen alles, was in eine Reihe von Regeln zerlegt werden kann, die angewendet werden müssen, um eine Antwort zu erhalten. Sie können die "beste" Sprache erst dann wirklich bestimmen, wenn Sie Ihr Problem ausreichend analysiert haben. Hier bietet sich Pseudocode an. Wenn Sie feststellen, dass Sie Pseudocode schreiben, der wie FP aussieht, verwenden Sie FP.
Natürlich sind alle vollständigen Programmiersprachen funktional gleichwertig, daher spielt es keine Rolle, welche Sie auswählen, um welche Probleme Sie lösen können. Die Haupteffekte betreffen die Effizienz und Genauigkeit der Codierung sowie die einfache Wartung.
Beachten Sie auch, dass es möglich ist, FP in OO-Sprachen durch clever gestaltete APIs nachzuahmen. Ich habe zum Beispiel zahlreiche Java-Bibliotheken gesehen (JMock ist ein Beispiel), die Methodenverkettung verwenden, um ein FP-DSL zu simulieren. Dann sehen Sie Konstrukte wie:
logger.expects(once()).method("error")
.with( and(stringContains(action),stringContains(cause)) );
Dadurch wird im Wesentlichen eine Funktion erstellt, die ausgewertet wird, um festzustellen, ob eine Aufrufsequenz für ein Scheinobjekt korrekt ist. (Beispiel gestohlen von http://www.jmock.org/yoga.html )
Eine andere FP-ähnliche Syntax in anderen OO-Sprachen ist die Verwendung von Verschlüssen, z. B. in Ruby.