[gambit-list] Several questions about gambit

Mikael mikael.rcv at gmail.com
Wed Jan 16 06:46:53 EST 2013

2013/1/16 Chris Müller <ruunsmail at gmail.com>

>  Thanks, that helped very much !
> Am 10.01.2013 12:40, schrieb Álvaro Castro-Castilla:
> Hi!
> I'll try to help you with some answers:
> 1) One solution would be to use Blackhole, it handles the location. If you
> don't the best solution is to use the ~~ syntax:
> (load "~~yourlib/yourmodule")
> This will expand to your current Gambit installation directory. In my case,
> this would be /usr/local/Gambit-C/yourlib/yourmodule.scm
> 2) Well, the place for learning Gambit usage is the documentation in the
> web, AFAIK. There are also some other explanations in the wiki.
> 3) Use Blackhole, it will both give you a module system and a macro
> expander (for syntax-rules and syntactic closures). Snow was primarily
> intended to be a cross-implementation module system, for portable
> libraries, but I think it wasn't very successful as it seems unmaintained.
> Probably due to R6RS irruption.
> I have my own system, which is not really a module system, but a way to
> handle packages and automate tasks. In the near future I'll try to merge it
> with Blackhole.
>  I've managed to to get it work and start using it.
>  4) Try with pretty printing: (pp object). Another useful procedure would be
>  Is it also possible to set a custom format for an object? (similar to
> http://srfi.schemers.org/srfi-28/srfi-28.html)

Anything is possible: I believe there's not hooks for this in the system
already, because when someone wants custom formatted output it's generally
more suitable for the user to implement this from scratch, though you can
add any hooks you want.

e.g. i'm currently looking for a (number->string ...) conversion, where i
> can set the
> number of digits after the decimal point within the string.

You can patch Gambit to make this happen. Preferably you add a parameter
i.e. |make-parameter| value to Gambit's code where you specify this
setting, and then make the routine - number->string I guess - pick it up.


; Global scope - default behavior
(number->string 5.2) ; => "5.2"

; Global scope - chris/number->string:fixed-decimals set to 5  ** Generally
don't do it this way! **
(chris/number->string:fixed-decimals 5.2) ; => "5.20000"

; Parameterized scope with chris/number->string:fixed-decimals set to 3.
        (but like this)
(parameterize ((chris/number->string:fixed-decimals 3)) (number->string
5.2)) ; => "5.200"

; Global scope - of course it's back the same i.e.
(chris/number->string:fixed-decimals 5.2) ; => "5.20000"

More generally, this kind of thing would be done with a formatting library.
I believe it remains for one tuned for Gambit yet to come into existence -
there's a SchemeFmt library, something like this, out there that's
cross-scheme, perhaps it could be adapted. Someone on the ML by the name
Tanya I believe got it running on Gambit.

Feel free to share any patches you produce with the ML.

>  5) In my opinion, one of the strongest points of this implementation is its
> FFI capabilities. There are Cairo bindings in the dumping grounds of the
> web. I have also made my own, updated to Cairo 1.12. C bindings are
> _relatively_ straightforward. Objective-C seems to be as well, although I
> don't have experience with this (there are some helper macros in the
> dumping grounds as well). But I don't see why you would have any problems
> with Glib/GTK/Cairo. You'll have to figure a way to express the
> functionality of Glib's C macros.
> I hope I clarified some things.
> Best regards,
> Álvaro
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20130116/ca67084d/attachment.htm>

More information about the Gambit-list mailing list