Everything open source
May 16–17, 2016: Training & Tutorials
May 18–19, 2016: Conference
Austin, TX

These three functional languages: Haskell, Scala, and Clojure

Daniel Hinojosa (Evolutionnext.com)
9:00am–12:30pm Monday, 05/16/2016
Open Source 101
Location: Meeting Room 19 Level: Intermediate
Average rating: ****.
(4.23, 13 ratings)

Prerequisite knowledge

Attendees should have basic knowledge of any programming language.

Materials or downloads needed in advance

Attendees need a laptop with JDK 8 or higher, Scala, Clojure, and Haskell installed as well as a GitHub account. Please read and follow these detailed instructions before the tutorial.


Functional programming has been around for decades. Functional programming offers the ability to represent not only nouns but also verbs, giving us a better ability to handle complex tasks in an easier fashion and in a modular way. Functional programming also embraces immutability and keeps programmers from race conditions and locking madness. In this 3-hour compare-and-contrast tutorial, Daniel Hinojosa gives a small guided tour of three popular functional languages: Haskell, Scala, and Clojure.

Haskell is a pure functional language with no side effects. It isn’t object oriented and any so-called structure mechanics are implemented as a function. Scala is a multiparadigm language in that it is both functional and object oriented. Scala runs on the Java Virtual Machine (JVM) and takes inspiration from Haskell, Java, and Erlang. Clojure is a Lisp that also runs on the JVM. In contrast to Haskell and Scala, Clojure is dynamically typed and is built on the notion of simplicity—most operations are done with lists, vectors, sets, and maps. Clojure is considered purely functional; as in Haskell, there are no objects up front when dealing with the language. Daniel analyzes each of the common features of the languages in turn and discusses some of the other languages that take their inspiration from these three functional languages.

Photo of Daniel Hinojosa

Daniel Hinojosa


Daniel Hinojosa has been a self-employed developer, teacher, and speaker for private business, education, and government since 1999. Daniel also currently teaches programming at the University of New Mexico Continuing Education. His business revolves around the Java ecosystem, encompassing multiple languages and frameworks. Daniel is a Pomodoro Technique practitioner and is cofounder of the Albuquerque Java User’s Group in New Mexico.

Comments on this page are now closed.


Picture of Thomas Falgout
Thomas Falgout
05/16/2016 2:50am CDT

If you have OSX 10.6+, you can do:
brew install ghc cabal-install

Picture of Robert O'Connor
Robert O'Connor
04/28/2016 9:21pm CDT

For haskell — it might be better to use http://docs.haskellstack.org/en/stable/README/