ML

"'It's... functional.' - Mica Kohl, Class of 2014"

SML, short for Standard ML, is the primary programming language of Independent Study. Unlike Java, which belongs to the Object Oriented programming paradigm, SML is a member of the Functional programming paradigm. Functional programming languages do not rely on a system of interacting objects to complete a task, as object-oriented programming languages like Java do. Instead, functional programming languages are made up of "functions," the concept of which is closer to a mathematical function like f(x) = e^x. A so-called "pure" functional language would not use variables at all, and would focus entirely on the manipulation of arguments to produce results. Programs and functions in functional languages are like mathematical expressions in that they provide relations between two or more entities rather than a set of instructions involving those entities.

Notepad++

 * SML can be coded using many different editors. As of Fall 2014, the recommended editor is Notepad++, available only for Windows. Notepad++, as its name suggests, is a text editor much like Microsoft's Notepad accessory, but with extended features and support that allow users to more easily edit code.

Emacs

 * The Independent Study class of 2014 used the GNU emacs editor, which ships built into every current Linux distribution and Mac OS and can also be installed on Windows. Emacs is very different from most of the programming and text editors that many TAG Students have used before and may present a steep learning curve, so it is probably not a good option for most students. From the Class of 2014: "Emacs is so full of stuff that I couldn't begin to cover it all. All you really need to know is the doctor who can help you survive independent study, you can access him by typing M-x doctor."

Eclipse

 * Eclipse is one of the best alternatives to either of these editors. Eclipse is an IDE (Integrated Development Environment) that was originally designed for creating Java applications but has evolved to include support for an enormous number of other programming languages and development platforms. Eclipse is open-source and has available versions for all major operating systems, eliminating the issues of expense and compatibility. To write SML with Eclipse:


 * 1) Download and install SML (If you are a Mac user, follow the installation instructions for UNIX machines.)
 * 2) Download and install the latest version of Eclipse.
 * 3) Open the Help menu, and click Install New Software.
 * 4) Click the Add button.
 * 5) Enter "http://andriusvelykis.github.io/ml-dev/updates/nightly/" (without quotes) in the URL field, and "ML-Dev" in the Title field (Again, without quotes, and you can title it however you like), then click Add.
 * 6) A listing entitled "ML-Dev" should appear in the box below. Check the check box next to it.
 * 7) Click Next, and follow the instructions given by the installer.

Links and Additional Reading

 * 1) XKCD #378: http://xkcd.com/378
 * 2) SML of NJ: http://www.smlnj.org/
 * 3) Eclipse: https://eclipse.org