
On Tue, Dec 30, 2014 at 04:23:25PM +0000, Tom Ellis wrote:
On Thu, Dec 25, 2014 at 04:34:19PM -0700, Richard Wallace wrote:
I've been working to encode a fairly complex flow chart.
What precisely do you mean by "flow chart"?
If you mean something loosely described as "a sequence of nodes which lets you perform actions and choose a next path based on the results of those actions" then isn't each node just `M Bool` for some monad of appropriate actions `M`?
For example here is the flowchart from the top of http://en.wikipedia.org/wiki/Flowchart implemented as I describe: plugInLamp :: M () replaceBulb :: M () repairLamp :: M () lampPluggedIn :: M Bool bulbBurnedOut :: M Bool lampDoesn'tWork :: M () lampDoesn'tWork = do p <- lampPluggedIn if not p then plugInLamp else do b <- bulbBurnedOut if b then replaceBulb else repairLamp