22 lines
554 B
C
22 lines
554 B
C
#include <caml/mlvalues.h>
|
|
#include <caml/callback.h>
|
|
#include <stdio.h>
|
|
|
|
void print_closure(const char *closure_name) {
|
|
value * closure_f = caml_named_value(closure_name);
|
|
if (closure_f == NULL) {
|
|
printf("ERROR: Unreachable closure %s\n", closure_name);
|
|
return;
|
|
}
|
|
|
|
const char *str = String_val(caml_callback(*closure_f, Val_unit));
|
|
printf("%s: %s\n", closure_name, str);
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
caml_main(argv);
|
|
print_closure("Hello callback");
|
|
print_closure("Bye callback");
|
|
return 0;
|
|
}
|