Functional programming - Bodil Stokke

Build Your Own Lisp for Great Justice Implementing a toy Lisp interpreter is practically a rite of passage for the budding computer scientist. This hallowed tradition is described in detail in "Lisp in Small Pieces," the seminal work on the making of Lisps, but everybody loves a tl;dr, so let's do the 40 minute executive summary. We'll charge at high speed through the following topics, with Clojure code to follow along with as we go (because there's no better language for implementing a Lisp than another Lisp): * Parsing: turning text files into ASTs * Fundamental Lisp datatypes * McCarthy's elementary functions * Evaluating Lisp code * Lambdas and lexical scope * Your friend, the state monad * Beyond Lisp: pattern matching and type systems When we're done, you'll be ready to go forth and fill the world with Lisps of all shapes, colours and Greenspun violations for Great Justice. Also, it'll be good fun. Speaker Bodil Stokke (@bodil) is a compulsive conference speaker in the fields of functional programming and internets technologies, and is a co-organiser of three annual developer conferences in her home town of Oslo, Norway, mostly because she's still learning how to stop. She is a prolific contributor to the Free Software community, primarily as a Clojure developer, and has recently taken up designing new programming languages as a hobby. In her spare time, she works as a web developer for Comoyo, which is like Hulu for non-Americans.

Related Talks

Zach Tellman - Always Be Composing

Zach Tellman - Always Be ComposingThe Clojure ecosystem, we're told, is made up of small, composable libraries. In practice, though, it's all too common to find that two libraries simply will not cleanly compose. This typically will lead to another library that does the same thing, but in a subtly different way. Sometimes this is ...

Solving Problems with Automata - Mark Engelberg & Alex Engelberg

Solving Problems with Automata - Mark Engelberg & Alex EngelbergMany of us have hazy memories of finite state machines from computer science theory classes in college. But finite state machines (FSMs) have real, practical value, and it is useful to know how to build and apply them in Clojure. For example, FSMs have long been popular to model game ...

Atmosphere 2013: "Your CSS is a Mess" Jonathan Snook (Shopify)

Atmosphere 2013: "Your CSS is a Mess" Jonathan Snook (Shopify)We would like to thank everyone for attending the first edition of Atmosphere Conference, which was held on the 13th-14th May 2013 in Concordia Design in Poznan. Considering the fact that the event was organised for the first time, we must admit that there was a great number of attendees ...

Debugging with the Scientific Method - Stuart Halloway

Debugging with the Scientific Method - Stuart HallowayAbout the speaker: Stuart Halloway (@stuarthalloway) is a founder and President of Cognitect (formerly Relevance). He is a Clojure committer, and a developer of the Datomic database. Stuart has spoken at a variety of industry events, including Strange Loop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and ...

Genetic Programming in Clojure - Lee Spector

Genetic Programming in Clojure - Lee SpectorGenetic programming harnesses the mechanisms of natural evolution, including mutation, recombination, and natural selection, to automatically synthesize computer programs. It has been applied to a wide range of problems spanning several areas of science, engineering, and the arts, in many cases equaling or exceeding human performance. Genetic programming's roots are in ...

Andy Keep - Writing a Nanopass Compiler

41 minutes
Andy Keep - Writing a Nanopass CompilerContemporary compilers are among the most complex of software systems, typically being required to handle sophisticated high-level source languages, generate efficient code for multiple hardware architectures and operating systems, and support source-level debuggers, profilers, and other program development tools. Nanopass frameworks are designed to help manage this complexity. A nanopass ...

Machine Learning Live - Mike Anderson

28 minutes
Machine Learning Live - Mike AndersonThis presentation will introduce a new start-up focused on machine learning that is using Clojure. We will discuss the technology and architecture it has developed for real-time machine learning and pattern recognition, and how Clojure provides a unique set of advantages. There will be a live coding demonstration of interactively applying ...

Clojure Data Science - Edmund Jackson

33 minutes
Clojure Data Science - Edmund JacksonData science / big data exists at the overlap of traditional analytics and large scale computation. As such, neither the traditional tools of analytics (R, Mathematica, Matlab) nor mainstreams languages (Java, C++, C#) supply its requirements well as they cannot simultaneously provide the mathematical abstractions and real-word platform power that ...

Tim Ewald - Clojure: Programming with Hand Tools

an hour
Tim Ewald - Clojure: Programming with Hand ToolsFor most of human history, furniture was built by hand using a small set of simple tools. This approach connects you in a profoundly direct way to the work, your effort to the result. This changed with the rise of machine tools, which made production more efficient but also altered ...