Marc Feeley feeley@iro.umontreal.ca writes:
On 14-Apr-08, at 3:58 PM, Derek Peschel wrote:
On Mon, Apr 14, 2008 at 02:03:37PM -0400, Joel J. Adamson wrote:
Is there somewhere I can read more about this?
The manual doesn't mention type safety or the namespace feature (which the ## prefix is one instance of) but the Wiki has a page on them. ## means "internal" more than "unsafe". Many of the internal procedures are unsafe, though, and all unsafe procedures are supposed to be internal.
http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Namespaces
Comments from new readers might improve the page. That's why I'm posting to the list.
Here's a short explanation of the ## prefix.
Gambit is a "Scheme in Scheme", meaning that most of the code (including the Gambit compiler, the Gambit interpreter and the Gambit runtime system and libraries) is written in Scheme and compiled with the Gambit compiler. OK, so how does this work? Take something simple like the car procedure. How can car be implemented in Scheme?
Excellent explanation professor. Perhaps this is the beginning of the namespaces chapter in the manual? I must say Gambit's excellent feature-request responses and cool-and-friendly user community are keeping me using Gambit, despite how often I encounter undocumented procedures or usage; certain elements of style are never documented anywhere, but some things come up so often they seem like they require explanation.
My main question was whether in coding an application I should be using
##define
or
define
and you answered it succinctly.
Thanks, Joel