Comment

Comment by seanmcdirmid

Debugging a functional program is so difficult (data flow debuggers don't really exist) that equational reasoning is necessary because you want be able to fix your code otherwise. But really, mixing list comprehensions with effects is really a bad idea, and we C# programmers have no trouble avoiding it.

There are ways to tame side effects without going monads, which don't really fix the complexity problem anyways (it just makes all effects explicit). See this paper for ideas on how to do that:

http://research.microsoft.com/pubs/211297/managedtime.pdf

We shouldn't treat state like an unwanted but necessary evil, we should embrace it and deal with it.

parent seanmcdirmid 12 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton