[plt-scheme] Choosing language in PLT Scheme

From: Doug Williams (m.douglas.williams at gmail.com)
Date: Tue Jan 19 14:27:06 EST 2010

I'll give you my view as somone who uses PLT Scheme for developing
substantial applications in PLT Scheme. Some of these answers may be 'wrong'
from other people's perspectives.

1) What language should I choose?

The term language is somewhat overloaded (even within PLT Scheme itself), so
I'll give a couple of different answers. I consider PLT Scheme to be a (not
strictly proper) superset of R6RS - and I personally don't worry about the
differences. From the perspective of the DrScheme language menu, I always
choose 'Module' - I'll let the gurus explain the difference, but basically I
see it as telling the IDE REPL evaluates everything in the context of a
module. As far as the #lang tag-line, I use scheme or scheme/gui almost
exclusively - occasionally I use scheme/base for simple modules. There are,
of course, cases where some specialized language is required - like
setup/infotab for info.ss files.

How do I include all those needed *libraries?

The require form is used to specify the libraries. For libraries included
with the PLT distribution you use something like (require scheme/mpair) or
(require web-server/insta) - see the PLT Scheme documentation for specific
libraries. For libraries in planet, they look something like (require
(planet williams/science/science)). See the documentation for the
appropriate planet package.

How do you organize application that is split into several files?

Each module is a separate file - and vice versa. Use (require
"module-filename.ss") to reference the specific file. PLT Scheme will
correctly resolve the references and load the modules in a correct order -
or tell you it can't if there are circular dependencies, for example.

Also, the contract system works very well with the module system to specify
(and enforce) the function specification contracts for modules.

That is a very abbreviated discussion, but might get you started in the
right direction. Browsing PLaneT may also help.


On Tue, Jan 19, 2010 at 11:13 AM, Slobodan Blazeski <
slobodan.blazeski at gmail.com> wrote:

> Coming from cl and after learning some Scheme I want to write some real
> world program in it and the PLT Scheme looks like a the best choice on
> windows with its nice and modern ide and ability to deploy the application
> as single executable which is a gift from heaven for me. However I'm
> completely confused about what language represent in PLT Scheme, is it
> posible to mix them and which one of them should I use for my application
> (R5RS, R6RS , Pretty Big, Swindle etc) .
> At minimum I would need fallowing for my application:
> 1. PLT HTTP server
> 2. OO support (like TinyCLOS or something like that).
> 3. Some database bindings (like SqlLite, MySql, Postgre or whatever RDBMS
> flavor is available)
> JSON-RPC would be nice but if its not available I'm ready to get my hands
> dirty and write it myself.
> So my questions are:
> What language should I choose ?
> How to include all those needed *libraries* ?
> How do you organize application that is split into several files?
> (something like common lisp asdf)
> thanks
> Slobodan
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20100119/85a8313f/attachment.html>

Posted on the users mailing list.