archives

2 Misconcepts About Functional Programming (relating to context and monad)

Candle's last release announcement to LtU triggered some interesting discussion about whether the functional features in Candle are pure. I finally had sometime to write more about my thoughts on this issue. You can find the full content in this blog article.

In the blog, I talked about 2 misconcepts about functional programming. The 1st misconcept is that dynamic scope variables are not functional. The 2nd misconcept is that monads are functional.

In the blog, I coined a new concept called contextual functional, which extends the more strict pure functional concept.

In the following blog article, I also talked about the procedural design in Candle, including concepts like separation-of-side-effect and a 3 layer-architecture:

  • A functional core
  • A concurrent execution model
  • Shared and mutable state management

Your feedback is welcome!