<HTML><BODY>Is there simple way to calculate during compilation. Something like #. in&nbsp;Common Lisp.<BR><BR>For example how to do something like<BR><PRE class=no-highlight><CODE>(case ftype
  ((#.(keyword-&gt;g-type 'enum)
    #.(keyword-&gt;g-type 'flags))
        (convert-to-foreign value (g-type-&gt;lisp type)))
  (#.(keyword-&gt;g-type 'double)
        (coerce value 'double-float))
  (#.(keyword-&gt;g-type 'float)
        (coerce value 'single-float))
  ((#.(keyword-&gt;g-type 'int)
    #.(keyword-&gt;g-type 'uint)
    #.(keyword-&gt;g-type 'long)
    #.(keyword-&gt;g-type 'ulong)
    #.(keyword-&gt;g-type 'int64)
    #.(keyword-&gt;g-type 'uint64)) <BR>        (round value))
  (else value))<BR><BR><BR>
</CODE></PRE>where keyword-&gt;g-type is a function (-&gt; symbol? exact-integer?).<BR><BR>I don't want to place resulting numbers, because then there will be a lot of "magic numbers" corresponfing to different foreign types. <BR><BR><BR>-- <BR>Roman Klochkov</BODY></HTML>