// Test out function pointers. flow add(int x,y) into (int f) { f = x + y; } flow sub(int x,y) into (int f) { f = x - y; } flow mul(int x,y) into (int f) { f = x * y; } flow div(int x,y) into (int f) { f = x / y; } var of flow (int x,y) into (int f) addOp = add, subOp = sub; prin(add(1,2)); prin(" vs "); print(addOp(1,2)); prin(sub(9,5)); prin(" vs "); print(subOp(9,5)); class employee { int id; long ssn; string lastName, firstName; }; class jumpTable { int version = 2; var of flow (int a,b) into int c add; var of flow (int a,b) into int c sub; var of flow (int a,b) into (int c) mul,div; } jumpTable jump = (1, add, sub, mul, div); print("10, 5: add, sub, mul, div via jump table"); print(jump.add(10,5)); print(jump.sub(10,5)); print(jump.mul(10,5)); print(jump.div(10,5)); flow divMod(int p, int q) into (int div, int mod) { div = p/q; mod = p%q; } { int div,mod; (div,mod) = divMod(106,10); print("106/10 - quotient and remainder:"); print(div); print(mod); } var of flow (int p,q) into (int div,mod) divModOp = divMod; { int div,mod; (div,mod) = divModOp(106,10); print("and again with a function pointer"); print(div); print(mod); }