"Programs should be written for people to read, and only incidentally for machines to execute." - Abelson and Sussman, Structure and Interpretation of Computer Programs
The linear nature of computational notebooks are a natural fit for telling the story of your code, data, and results. However, this format underpins an essential tension between the format's implied linearity and the computer's ability to access, process, and display information in any order. Functional approaches offer an idiosyncratic way of navigating the issue. For example, treating a cell as a collection of small pure functions and eliminating mutable global state make results more immediate and errors easier to understand.
This talk will explain functional programming using practical language and provide historical context. Some initial concepts will be demonstrated in Clojure or Julia, but ultimately translated to Python. Further consideration will be given to the impact of immutability, a core concept in the functional style, on creating reproducible notebooks.
Don't get bit by misaligned state and output, keep your notebooks running with these functional tips!
D. Schmüdde is a computational artist who creates experiences that examine the everyday realities of our post-digital society. Over the last fifteen years, he has installed interactive work at the Center for Holographic Arts in New York City, projected video art in the Schusev Museum of Architecture in Moscow, performed at the Chicago Museum of Contemporary Art, screened at the Chinese Theater in Los Angeles, and given talks around the world. He holds a bachelor's degree in computer science, a masters in music technology, and currently teaches science and technology studies at Stevens Institute of Technology while building a next generation computational notebook at Nextjournal.
He's always ready to discuss big ideas - find him at http://schmud.de.