<div dir="ltr">I think I found a decent solution, but am still curious if there is a better that I am missing.  I can get C to do the equivalent of <div>(map values my-hashtable)</div><div>giving me a list of key value pairs.</div><div><br></div><div>So where h is an s7 pointer to a hash-table:</div><div><br></div><div>s7_pointer key_val_list = s7_call(s7, s7_name_to_value(s7, &quot;map&quot;), s7_list(s7, 2, s7_name_to_value(s7, &quot;values&quot;), h));<br></div><div><br></div><div>I&#39;m guessing that&#39;s as good as it gets, eh?</div><div>iain</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Dec 7, 2020 at 7:21 PM Iain Duncan &lt;<a href="mailto:iainduncanlists@gmail.com">iainduncanlists@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi folks, I&#39;m needing to iterate through the key value pairs of a hashtable from C code in order to make some functions that convert from Max dictionaries to S7 hashes and vice versa. I can&#39;t think of an elegant way to do this from C. The only thing I&#39;ve thought of so far is that I could define a function to get the keys and call it from C..<div><br></div><div>ie something like</div><div><br></div><div>fun_get_keys = s7_eval_c_string(s7_scheme *sc, &quot;(lambda (h)( map( lambda(p)(car p) h )&quot;);<br><div><br></div></div><div>And then use C to call that function on my hashtable (which I have an s7 pointer to). Is that a decent approach or am I missing something pretty obvious here?</div><div><br></div><div>thanks</div><div>iain</div></div>
</blockquote></div>