Main.hx 413 B

12345678910111213141516171819202122
  1. @:callable
  2. abstract Function(Int->Int) to Int->Int from Int->Int {
  3. @:op(a * b)
  4. static inline function chain(a:Function, b:Function):Function {
  5. return function(i) {
  6. return a(b(i));
  7. };
  8. }
  9. }
  10. class Main {
  11. static function main() {
  12. var f:Function = function(a) {
  13. return a + 1;
  14. };
  15. var g = function(a) { return a * a; } * f;
  16. if (g(10) != 121) {
  17. throw "Incorrect function return value";
  18. }
  19. }
  20. }