Die Zusammensetzung von f und g, das aussieht wieEin gemeinsames Muster Einbeziehung Zusammensetzung von Funktionen ( a b -> f (g a) (g b))
f :. g = \a b -> f (g a) (g b)
ein Muster, das ich sehr oft in meinem Code finden. Es ähnelt der unären Funktionszusammensetzung, nur f
ist binär und ich möchte g
auf beide Argumente anwenden, bevor sie an f
übergeben werden.
Als ich lambdabot bitte dies zu Punkt freier Form zu konvertieren, erhalte ich die seltsamen Beschwörungs
, die ich lieber nicht in meinem Code, so dass ich am Ende nur explizit das Muster auszuzuschreiben .
Gibt es eine allgemein akzeptierte Möglichkeit, einen Kombinator für diese Situation zu schreiben? Oder bin ich seltsam, dass ich mich in dieser Situation ziemlich oft wiederfinde?
Ich habe kein aktuelles Beispiel, wenn ich es jetzt benutze, da ich nie daran gedacht habe, hier zu fragen, wenn ich es brauche, aber man könnte sich vorstellen, die euklidische Distanzformel sehr sauber zu schreiben, so wie:
distance = sqrt . (+) :. (^2)
'flip' beseitigt werden könnte:' (g.). f. g' –