首先编写两个 C 文件
// even.c
int even(n) int n; { return n == 0 || odd(n - 1); }
// odd.c
int odd(n) int n; { return n != 0 && even(n - 1); }
通过 ChezScheme 或命令行在 Mac OS X 上直接编译连接到共享对象库(.so)
$ echo '(system "cc -dynamiclib -o evenodd.so even.c odd.c")' | scheme -q
在 ChezScheme 交互界面中加载并测试
(load-shared-object "./evenodd.so")
(let ([odd (foreign-procedure "odd"
(integer-32) boolean)]
[even (foreign-procedure "even"
(integer-32) boolean)])
(list (even 100) (odd 100)))
;; => (#t #f)