# Scam

Scam is a nifty little language that looks a lot like Scheme, but is so much more. Scam is:

• an impure functional language with Scheme-like syntax
• a language where writing iterators like while and for is possible purely through function definition
• a language where everything is a function, including define and set! - overloading these functions can be fun!
• a fully object-oriented language with trivial syntax and easy-to-comprehend semantics
• a language with programmer-controlled delayed evaluation
• a language with built-in garbage collection
• a language that optimizes tail-recurion
• a language that supports multi-threading

Scam's homepage is beastie.cs.ua.edu/scam.

# Scam versus Scheme

For Scheme programmers, here is a list of important differences: quick hits.

Latest Scam versions:

32-bit Linux tarball
scam-2.4-i386.tgz
64-bit Linux tarball
scam-2.4a-amd64.tgz
32-bit Mac tarball
scam-2.4-OSX_32.tgz
64-bit Mac tarball
scam-2.4a-OSX_64.tgz

# Installation Notes

To install Scam, perform the following steps (using scam-2.4-amd64a.tgz as an example - make sure you use the right package for your particular system). Note: Windows 10 users must have the Linux Bash subsystem installed. Other versions of Windows are not supported. To begin:

1. In a bash shell, make a directory named scam that hangs off your home directory. Move into that directory:
mkdir ~/scam
cd ~/scam

export arch=dpkg --print-architecture

3. Retrieve the tarball:
wget beastie.cs.ua.edu/scam/scam-2.4a-amd64.tgz    #change, if necessary

Mac users may need to use \verb!curl -O! instead of \verb!wget!.

\item
Extract the files in the tarball:

\begin{verbatim}
tar xvzf scam-2.4a-amd64.tgz

4. Copy the scam executable to a directory in your path:
cp scam ~/bin                # if you have your own bin

or you can put ~/scam in your path. If you don't know what a path is, then do this instead:

sudo cp scam /usr/bin

5. It's unlikely, but you may need to install the readline library. On a Debian system like Ubuntu, you would issue the following command:

Look to the interwebs for instructions on how to install readline on other systems.

If you have trouble installing Scam, send a message to lusth@cs.ua.edu.

There is an Open Source reference manual that delves into Scam in detail. It is called The Scam Reference Manual

The reference manual gives the nuts and bolts on the syntax and semantics of Scam.