Ich versuche function composition in der Eiffel-Programmiersprache zu tun. Mit Funktionszusammensetzung meine ich eine Funktion, die zwei Funktionen f (x), g (x) und eine Funktion f (g (x)) zurückgibt.Funktion Zusammensetzung mit Eiffel Agents
Das Problem besteht darin, dass Inline-Agenten keinen Zugriff auf lokale Werte haben. Im folgenden Code sind f und g unbekannte Bezeichner innerhalb des Agenten.
comp (f: FUNCTION [INTEGER, INTEGER]; g: FUNCTION [INTEGER, INTEGER]) : FUNCTION [INTEGER, INTEGER]
do
Result := agent (x: INTEGER) : INTEGER do Result := f(g(x)) end
end
Ich vermute, es könnte eine Möglichkeit sein, es zu tun, indem sie unter Verwendung eines Mittels, das eine ganze Zahl und zwei Funktionsargumente nimmt, dann f und g explizit auf diesen Agenten vorbei, aber ich bin nicht sicher.
Wenn jemand einen Einblick geben könnte, würde es sehr geschätzt werden.