// Testing guile bindings, see README.md and // https://www.gnu.org/savannah-checkouts/gnu/guile/docs/docs-2.0/guile-ref/Dynamic-Types.html #include #include #include #include extern void hello_zig(); extern SCM my_incrementing_zig_function (SCM a, SCM flag); SCM my_incrementing_function (SCM a, SCM flag) { SCM result; if (scm_is_true (flag)) result = scm_sum (a, scm_from_int (1)); else result = a; return result; } int main() { hello_zig(); SCM test = scm_from_int(3); SCM b = scm_from_bool(1); SCM result = my_incrementing_function(test,b); printf(" from %d to %d\n",scm_to_int(test),scm_to_int(result)); hello_zig(); SCM result2 = my_incrementing_zig_function(result,b); printf(" from %d to %d\n",scm_to_int(result),scm_to_int(result2)); return 0; }