ass5: omega->blackhole
[lambda.git] / how_to_get_the_programming_languages_running_on_your_computer.mdwn
index fbfcf97..0cb4f78 100644 (file)
@@ -26,7 +26,7 @@ you'll be in one of two subgroups:
        Then you'll need pre-packaged (and usually pretty GUI) installers for
        everything. These are great when they're available and kept up-to-date;
        however those conditions aren't always met.
-       
+
 
 If you're using **Windows**, you'll be in one of two subgroups:
 
@@ -50,7 +50,7 @@ systems.
        and we'll assume that those of you using different packaging systems will know
        how to make the relevant substitutions. You may also want to take note of the
        output of the "uname -srm" command. On my machine this tells me "Linux
-       2.6.35-ARCH x86_64". That tells me I'm running the x86_64 (as opposed to the
+       2.6.35-ARCH x86\_64". That tells me I'm running the x86\_64 (as opposed to the
        i686 or i386 or whatever) version of Linux, and that I'm running kernel
        version 2.6.35.
 
@@ -69,7 +69,7 @@ easier and more straightforward for others.
 ## Getting Scheme ##
 
 **Scheme** is one of two major dialects of *Lisp*, which is a large family of
-programming languages. The other dialect is called "CommonLisp." Scheme is the
+programming languages. The other dialect is called "Common Lisp." Scheme is the
 more clean and minimalistic dialect, and is what's mostly used in academic
 circles.
 
@@ -82,11 +82,17 @@ another Scheme implementation, though, there's no compelling reason to switch.)
 
 Since the name change is so recent, you're likely to run across both sets of names.
 
-PLT Scheme had three salient components: the command-line version "mzscheme", a
-GUI extension "MrEd", and a teaching-friendly editor/front-end "DrScheme". In
-Racket these have been renamed "racket", "gracket", and "DrRacket",
+PLT/Racket stands to Scheme in something like the relation Firefox stands to HTML. It's one program among others for working with the language; and many of those programs (or web browsers) permit different extensions, have small variations, and so on.
+
+PLT Scheme had several components. The two most visible components for us
+were the command-line interpreter "mzscheme" and a teaching-friendly editor/front-end "DrScheme". In
+Racket these have been renamed "racket" and "DrRacket",
 respectively.
 
+*      In your web browser:
+
+       There is a (slow, bare-bones) version of Scheme available for online use at <http://tryscheme.sourceforge.net/>.
+
 
 *      **To install in Windows**
 
@@ -108,6 +114,14 @@ respectively.
        If you want the GUI components, I think you'll need to use the
        "Mac/without MacPorts" installation options above.
 
+       I recommend also typing:
+
+               sudo port install rlwrap
+
+       then if you ever use the command-line program `mzscheme` (or `racket`), you should start it by typing `rlwrap mzscheme`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
+
 *      **To install on Linux**
 
        Use your packaging system, for example, open a Terminal and
@@ -116,18 +130,26 @@ respectively.
                 sudo apt-get install plt-scheme
 
        It's very likely that your packaging system has some version of
-       PLT Scheme available, so look for it. However, if you can't find it you
+       PLT Scheme (or Racket) available, so look for it. However, if you can't find it you
        can also install a pre-packaged binary from the Racket website at <http://racket-lang.org/download/>.
        Choose the option for your version of Linux (Ubuntu, Debian, and two
-       varieties of Fedora are available)
+       varieties of Fedora are available).
+
+       As above, I recommend you also type:
+
+               sudo apt-get rlwrap
+
+       then if you ever use the command-line program `mzscheme` (or `racket`), you should start it by typing `rlwrap mzscheme`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
 
 
 ## Getting OCaml ##
 
 **Caml** is one of two major dialects of *ML*, which is another large family of
 programming languages. The other dialect is called "SML" and has several
-implementations. But Caml has only one active implementation, OCaml, developed
-by the INRIA academic group in France.
+implementations. But Caml has only one active implementation, OCaml or
+Objective Caml, developed by the INRIA academic group in France.
 
 It's helpful if in addition to OCaml you also install the Findlib add-on.
 This will make it easier to install additional add-ons further down the road.
@@ -173,7 +195,7 @@ However, if you're not able to get that working, don't worry about it much.
 
        This will build an installer package which you should be able to
        double-click and install.
-                       
+
 *      **To install on Mac with MacPorts**
 
        You can install the previous version of OCaml (3.11.2,
@@ -182,6 +204,13 @@ However, if you're not able to get that working, don't worry about it much.
 
                sudo port install ocaml caml-findlib
 
+       As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
+       
+
+*      [More details about installing OCaml on Macs, if needed](http://cocan.org/getting_started_with_ocaml_on_mac_os_x)
+
 *      **To install on Linux**
 
        Use your packaging system, for example, open a Terminal and
@@ -205,3 +234,7 @@ However, if you're not able to get that working, don't worry about it much.
        Here are the INSTALL notes:
        <https://godirepo.camlcity.org/svn/lib-findlib/trunk/INSTALL>.
 
+       As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
+