| ---- importing ---- | |
| require('example') | |
| a = 37 | |
| b = 42 | |
| -- Now call our C function | |
| print("Trying some C functions") | |
| print(" a =", a) | |
| print(" b =", b) | |
| print(" add(a,b) =", example.add(a,b)) | |
| print(" sub(a,b) =", example.sub(a,b)) | |
| print(" mul(a,b) =", example.mul(a,b)) | |
| print("Calling them using the my_func()") | |
| print(" add(a,b) =", example.callback(a,b,example.add)) | |
| print(" sub(a,b) =", example.callback(a,b,example.sub)) | |
| print(" mul(a,b) =", example.callback(a,b,example.mul)) | |
| print("Now let us write our own function") | |
| function foo(a,b) return 101 end | |
| print(" foo(a,b) =", example.callback(a,b,foo)) | |
| print("Now let us try something that will fail") | |
| local ok,c=pcall(example.callback,a,b,print) | |
| if ok==false then | |
| print("this failed as expected, error:",c) | |
| else | |
| print("oops, that worked! result:",c) | |
| end | |
| -- part2 stored function | |
| print("trying a stored fn") | |
| print("the_func=",example.the_func) | |
| print("setting to print") | |
| example.the_func=print | |
| print("the_func=",example.the_func) | |
| print("call_the_func(5)") | |
| example.call_the_func(5) | |
| function bar(i) print("bar",i) end | |
| print("setting to bar") | |
| example.the_func=bar | |
| print("call_the_func(5)") | |
| example.call_the_func(5) |