# PurelyFunctional.tv Newsletter 301: GraphQL, Hiccup, Symbolic Execution

Issue 301 - November 19, 2018 · Archives · Subscribe

Hi Clojurnators,

As many of you may know, I am writing a book. I just turned in Chapter 3, which means the early access is coming soon. The book is about functional programming. It's targeted at programmers who are new to functional programming. It deals with the problems functional programming can help mitigate and a skill-based approach to building function software. The idea behind it is that functional programming is mostly talked about in an academic way and we need a literature for everyday, working software engineers.

The first three chapters have been a real challenge! Not only have I never written a book, I also am fleshing out the ideas as I go. I've written and rewritten each of the chapters three times to get to the heart of the matter. Rewrites are hard and worthwhile. I am happier each time I begin a new rewrite. And I feel like I'm converging on a process to shorten the rewrite cycle. But we'll see.

Stay on this mailing list and I'll be sure to let you know when the book is available. I think it will be in the next few months.

Rock on!

PS Want to get this in your email? Subscribe!

## Howard Lewis Ship on GraphQL and Lacinia Podcast

Howard Lewis Ship talks about GraphQL on the REPL podcast.

Michael Nygard deconstructs the idea of coupling, using far reaching examples of moons (large and small), train cars, and, of course, software modules.

## Hiccup true, false, and nil Attributes Free lesson

This week's free video lesson is all about using attributes with true, false, and nil values.

George Wilson talks about monoids. I'm a big fan of monoids.

## Symbolic Execution: Intuition and Implementation

A cool program analysis technique I'd love to dive deeper into.

## Why Sum Types Matter in Haskell

An explanation of sum types and product types, which are used in Haskell (and similar languages) to represent different cases in a data model. We know them better as variants in the Clojure world.