Chicken offers several interesting FFI variants. I present a simple example in this post. Why is it called Chicken? Well, it emits 'C' code and calls GCC or other compiler to compile the Scheme language or an extension. But you need Scheme to generate the code in the first place? It's a chicken-and-egg kind of thing. See call-with-continuation.org for a better explanation.
;;; -*- scheme-mode -*-
;;; Inline 'C' code with Chicken Scheme
(define inline-cube
(foreign-lambda* int ((int num))
"int result = (num * num * num);"
"printf(\"inline cube of %d is \",num);"
"return(result);"))
( print (inline-cube 13))
( display "goodbye\n" )
(exit)
;;
------------ console printout ------------
$ csc test2.scm
$ test2
inline cube of 13 is 2197
goodbye
Well, this example is somewhat un-Scheme-ly but I included Lambda to make it more so.