matthw
Although, gotta wonder how these stack-allocated objects interact with closures.
Given that it has garbage collection, arrays/slices, and it disallows pointer arithmetic, it seems it would suffice to use references everywhere.
I thought maybe it was for easy interop with C APIs, but it seems it needs a FFI for that anyway.
Perhaps someone can enlighten me about that design decision? I'm sure there's a reason, I just don't immediately see it.
That's just Propositional Logic (or Boolean Algebra, if you want to put it in a slightly more abstract setting, which wouldn't hurt since you can then apply it to other related things like set union/intersection/complement).
First-order logic is really useful for Relational Algebra though. Which you should know if you do anything with relational databases.
In fact I think often when people recommend graph theory for computer science, they're thinking more about order theory (trees, DAGs, posets etc), or failing that, more the "basic algorithms over graphs" stuff than the "let's prove a bunch of clever theorems about k-colourings" kind of graph theory which you might get if you bought a book on it.
Perhaps Spotify are just doing this to force Apple's hand, possibly reveal a bit of their strategy for iTunes subscription services?