Dear Racketeers: Apologies in advance for what will probably be a long-winded newbie question. I'm wondering how one goes about "exploring" the Racket libraries. That is, how does one find out things like:
1. which modules are likely to contain functions useful for a particular task 2. what names a given module exports 3. more information about the objects exported by a module: e.g., brief descriptions, their types, what methods they respond to, ... Here's some background. Most of the programming I have done is in Python. One of my favorite features in Python is that >>> help(X) gives useful information for just about any object X. This is great for exploring modules, learning about the methods and member variables of classes, and finding out what functions do; it's an important "bottom-up" tool for exploring the language and libraries. In Python, I can often think, "I need something similar to, but not quite the same as, X; X is defined in module M; so let's do help(M) to see if M has the function I want." Often, I can tell at a glance over the docstrings that the thing I need -- or something related to it -- is there. (This kind of "bottom-up" exploration is complemented by the documentation for the Python standard library, which provides a nice "top-down" reference.) I know that REPL-based interaction is de-emphasized in Racket. Does that mean that the kind of "bottom-up" exploration of the language that I'm describing is de-emphasized as well? Should the documentation be the first (only?) place I go to learn about modules and their contents? If so, what's the best way to access and search the documentation while programming? Please understand that I'm not ragging on Racket's documentation here; the documentation is truly excellent. I guess one way of asking my question might be this. I tend to think of the documentation as something I must sit down and read for a while, partly because the examples are often extended and build on each other, and partly because of the psychology of jumping out of Emacs into a browser.[1] Is there a different way of using and thinking about them? In particular, is there a way of using them that corresponds to the uses of help() in Python? Thanks for your thoughts! Best, Richard [1] I have so far mostly stayed away from DrRacket, because I know Emacs well and haven't felt the desire or need so far to learn another environment. Is that my problem? Does DrRacket support the kind of bottom-up exploration in the documentation that I'm trying to describe? _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

