<div dir="ltr"><div>Hi Iain,</div><div><br></div><div>Do you really need the &quot;foobar&quot; to be like a keyword? (the : prefix)</div><div>If not I, guess one would go like</div><div><br></div><div>;; foobar of default value 0</div><div>;; you could use define* to denote the  defaults and override them<br></div><div>(define (make-state)</div><div>(let ((foobar 0))</div><div>  (curlet))</div><div><br></div><div>and then</div><div>(define my-state-thing (make-state))</div><div><br></div><div>;; getter<br></div><div>(my-state-thing &#39;foobar)</div><div><br></div><div>;;setter</div><div>(set! (my-state-thing &#39;foobar) 99)<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 29 Jul 2020 at 21:59, 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 S7 Schemers, I&#39;m hoping someone can help out, or point me at some beginner friendly resources as I&#39;m not able to figure this out from the S7.html page. I am making a state management container for my max apps. I&#39;d like to make it follow the generic applicable syntax so that one can call it as if it&#39;s a hashtable, allowing code using this to be unaware of implementation. So I want to implement a setter and getter for my function to be able to do:<div><br></div><div>;; call my setter </div><div>(set! (my-state-thing :foobar) 99) </div><div><br></div><div>;; call my setter</div><div>(my-state-thing :foobar) </div><div><br></div><div>I apologize if this is just basic scheme ignorance!</div><div>thanks</div><div>iain<br><br><div><br></div></div></div>
_______________________________________________<br>
Cmdist mailing list<br>
<a href="mailto:Cmdist@ccrma.stanford.edu" target="_blank">Cmdist@ccrma.stanford.edu</a><br>
<a href="https://cm-mail.stanford.edu/mailman/listinfo/cmdist" rel="noreferrer" target="_blank">https://cm-mail.stanford.edu/mailman/listinfo/cmdist</a><br>
</blockquote></div>