| 1234567891011121314151617181920212223242526272829303132333435 | @:functionalInterfaceinterface MathOperation {	function perform(a:Int, b:Int):Int;}class Ops {	static public final add:MathOperation = (a, b) -> a + b;	static public final subtract:MathOperation = (a, b) -> a - b;	static public function performMathOperation(operation:MathOperation) {		return operation.perform(8, 4);	}}class Main {	static function main() {		var result = Ops.performMathOperation(Ops.add);		trace('Add: ${result}');		result = Ops.performMathOperation(Ops.subtract);		trace('Subtract: ${result}');		result = Ops.performMathOperation(multiply);		trace('Multiply: ${result}');		result = Ops.performMathOperation(function(a, b):Int {			return Std.int(a / b);		});		trace('Divide: ${result}');	}	static function multiply(a, b):Int {		return a * b;	}}
 |