When people are confused by something, they will often blame the target of their confusion instead of admitting to themselves that they don’t understand.
When people are confused by something, they will often blame the target of their confusion instead of admitting to themselves that they don’t understand.
I.e.: a monadic architecture in Haskell is good, but one in Java is going to suck. A sort of half-way point is in The Elm Architecture, which is a sort of deconstructed IO monad.
(Writing this as someone with decades of experience in writing monadic architectures.)
Haskell’s `Monad` type class is hardly the only possible encoding of a monad. They’re just a simple mathematical construction with useful properties, and — like functors and applicative functors — they emerge everywhere.
What I think you are doing is: well quantum mechanics is just simple mathematical construction and some artithmetic.
Is it really? Is it _just_ that?
I like this book: https://www.manning.com/books/functional-design-and-architec...
Thanks. It was.
> I like this book
I have that book, but I haven't read it. Which part specifically should I look at to understand what you mean by "monadic architecture"? Or do I need to read the entire book first? I'm searching through that book right now, and as far as I can tell, it doesn't mention "monadic architecture" even once.
When you use Hakyll to generate a static site, you use a bunch of monads. But is a Hakyll site a "monadic architecture"? I'm not quite sure how I'd describe it as an architecture — it's really just an imperative program. It's to some degree a bit like a Makefile.
A Yesod application on the other hand I would readily describe as MVC, and yet it's all monads all over the place.
What about something like The Elm Architecture? Elm provides a bunch of monads (not directly as an abstraction, but through a few specific instances) but its architecture I would describe as perhaps FRP, or unidirectional data flow state machine kinda thing.
So that's three examples with clearly distinct architectures, and all three are architectures that "consist of monads".
So, I don't really understand what "monadic architecture" means.