<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div>Here is a simple piece of code to do it:<div><br></div><div><div><font class="Apple-style-span" face="Courier">;; double each element of v (with length n) in place</font></div><div><font class="Apple-style-span" face="Courier">(define double!</font></div><div><font class="Apple-style-span" face="Courier">  (c-lambda (scheme-object int) ; the vector and it's length</font></div><div><font class="Apple-style-span" face="Courier">            void</font></div><div><font class="Apple-style-span" face="Courier">            "//extract array from scheme object</font></div><div><font class="Apple-style-span" face="Courier">             ___U16* v = ___CAST(___U16*, ___BODY_AS(___arg1, ___tSUBTYPED));</font></div><div><font class="Apple-style-span" face="Courier">             // perform the C operations</font></div><div><font class="Apple-style-span" face="Courier">             int i;</font></div><div><font class="Apple-style-span" face="Courier">             for (i=0; i<___arg2; i+=1) {</font></div><div><font class="Apple-style-span" face="Courier">               v[i] += v[i];</font></div><div><font class="Apple-style-span" face="Courier">             }"))</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">(define *v* (u16vector 0 1 2 3 4 5))</font></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier">(display *v*)</font></div><div><font class="Apple-style-span" face="Courier">(newline)</font></div><div><font class="Apple-style-span" face="Courier">(double! *v* (u16vector-length *v*))</font></div><div><font class="Apple-style-span" face="Courier">(display *v*)</font></div></div><div><br></div><div>For more details, the Gambit site, specifically</div><div><span class="Apple-tab-span" style="white-space:pre">  </span><a href="http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Using_Gambit_with_External_Libraries#Accessing_Scheme_vectors_within_a_C_function">http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Using_Gambit_with_External_Libraries#Accessing_Scheme_vectors_within_a_C_function</a></div><div>has many details.</div><div><br></div><div>Chris D.</div><div><br></div></body></html>