MIT: Independent Activities Period: IAP

IAP 2013



A Tale of Two LISPs

Robert McIntyre, Duncan Townsend

Enrollment: Unlimited: No advance sign-up
Attendance: Participants welcome at individual sessions
Prereq: The ability to appreciate true beauty

TL;DR: LISP is awesome. We will convince you why. If you want to learn what LISP is all about, then this is the class for you! We will tell you why LISP _really_ is the language you want to program in. LISP is a functional programming language with a syntax that easily lends itself to manipulating code as data. It is also one of the oldest programming languages still in widespread use (preceded only by FORTRAN). The first class will cover the history of LISP from John McCarthy's original S-expressions, through Lisp Machine Lisp, Common Lisp, Scheme, and Clojure. You will see several REPL sessions with historic LISPs, including a working Symbolics 3630 Lisp Machine (new in 1986). You will also see sessions with more modern LISPs: Common Lisp, Dr. Racket, elisp, Clojure, and Scheme. We will discuss the differences between these LISPs. The second class will cover one of the newest additions to the LISP family, Clojure. Clojure is "LISP reloaded" and designed to run on the Java Virtual Machine and leverage all of the libraries accessible from Java. It makes concurrent programming on today's multi-core processors easier by offering Software Transactional Memory, multi-threaded higher order functions like pmap, futures, and atomic data. Clojure also lets you program using immutable data structures efficiently by using structure-sharing for all of its basic data types. We'll show you some cool real world examples of Clojure libraries so you can get a feel for the language.

Sponsor(s): Student Information Processing Board, Electrical Engineering and Computer Science
Contact: Robert L McIntyre, sipb-iap-lisp@mit.edu


History of LISP

Jan/21 Mon 09:30PM-11:00PM 4-231

We will cover the history of LISP from John McCarthy, through Lisp Machine Lisp, Common Lisp, Scheme, and Clojure. You will see several REPL sessions with historic LISPs, including a working Symbolics 3630 Lisp Machine (new in 1986). You will also see sessions with more modern LISPs: Common Lisp, Dr. Racket, elisp, Clojure, and Scheme. We will discuss the differences between them.


Clojure

Jan/23 Wed 09:30PM-11:00PM 4-231

Clojure runs on the JVM and can access all the Java libraries. It makes concurrent programming easier by offering Software Transactional Memory, multi-threaded higher order functions like pmap, futures, and atomic data. By using structure-sharing for all of its primitives it, also lets you use immutable data structures efficiently. We'll develop a small web app (Dice of Doom by Conrad Barski) to demonstrate this.