You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Functional programming is not only about composing functions
and algebraic data structures --- it makes concurrency composable ---
something that's virtually impossible with other programming paradigms.
It may be worth nothing that the Lambda calculus (CCCs) models of sequential computation. This is not to say that functional programming is limited to the lambda calculus. Take a look here which, by a reference to Robin Milner's Turing Award lecture, suggests that CCCs are not the right semantic framework for concurrency, but perhaps the more general symmetric monoidal categories are. This connection is explored in a few other places, some of which are:
Models of Concurrency - unifies several models of concurrency (event structures, Petri nets, trace languages, pi-calculus) using the language of Grothendieck fibrations.
Conflation Confers Concurrency - notes the connection of LL with session types, pi-calculus and compares to the relationship between intuitionistic logic and lambda calculus. More on this by Wadler.
Overall, I think it is a slight exaggeration to say the FP "composes" concurrency since there is still a ways to go in even establishing an agreed-upon model of concurrency. The references above seem to hint at a deep relationship between concurrency, LL, and categorical models of quantum mechanics. With that said, programming concurrent systems using FP techniques is certainly advantageous.
The text was updated successfully, but these errors were encountered:
While I surely appreciate the time you took to write this comment, I'm afraid I can't be of much help here - Bartosz doesn't usually check this site, and I don't/can't influence the content of the book. You add this as a comment on Bartosz' blog (I know he checks them and responds).
I'm closing this for now.
It may be worth nothing that the Lambda calculus (CCCs) models of sequential computation. This is not to say that functional programming is limited to the lambda calculus. Take a look here which, by a reference to Robin Milner's Turing Award lecture, suggests that CCCs are not the right semantic framework for concurrency, but perhaps the more general symmetric monoidal categories are. This connection is explored in a few other places, some of which are:
Interaction Categories and the Foundations of
Typed Concurrent Programming - defines a category Proc wherein product is composition.
Models of Concurrency - unifies several models of concurrency (event structures, Petri nets, trace languages, pi-calculus) using the language of Grothendieck fibrations.
Sheaf Semantics for Concurrent Interacting Objects - uses sheaf/topoi theory to provide semantics for concurrency.
Conflation Confers Concurrency - notes the connection of LL with session types, pi-calculus and compares to the relationship between intuitionistic logic and lambda calculus. More on this by Wadler.
The Topological Structure of Asynchronous
Computability - provides a framework for and shows that consensus is non-terminating using homology.
More references on https://ncatlab.org/nlab/show/linear+logic.
Overall, I think it is a slight exaggeration to say the FP "composes" concurrency since there is still a ways to go in even establishing an agreed-upon model of concurrency. The references above seem to hint at a deep relationship between concurrency, LL, and categorical models of quantum mechanics. With that said, programming concurrent systems using FP techniques is certainly advantageous.
The text was updated successfully, but these errors were encountered: