callback
追記 : MacOSでは.sでもプリプロセスされるらしい。何故。。? - https://bugs.launchpad.net/ikarus/+bug/179878/comments/11
okuoku@okupcb ~/mosh/mosh.cygwin $ cat qsort.scm (import (mosh) (mosh ffi) (rnrs)) (define array (u8-list->bytevector '(6 5 3 4 1 7 2))) (let* ([libc (open-shared-library "cygwin1.dll")] [qsort (c-function libc void qsort void* int int callback)] [compare (c-callback int (void* void*) (lambda (x y) (if (> (pointer-ref-c-uint8 (integer->pointer x) 0) (pointer-ref-c-uint8 (integer->pointer y) 0)) 1 0)))]) (qsort array (bytevector-length array) 1 compare) (display array)) okuoku@okupcb ~/mosh/mosh.cygwin $ ./mosh qsort.scm GC Warning: Repeated allocation of very large block (appr. size 376832): May lead to memory leak and poor performance. #vu8(4 3 1 2 5 6 7)