User loginNavigation 
Commutative EffectsI'm designing/implementing a new semiimperative programming model called Glitch that is based on optimistic execution and eventual consistency. The idea is that a computation can only performs imperative effects that are undoable and commutative so that (1) they can be rolled back when reexecution deems that they are no longer performed and (2) that an effect can be installed in any order so the computation can be decomposed into parts that can be executed in arbitrary order. Few effects are actually commutative, but we can hack some to act commutatively with extra restrictions or data; examples:
I was wondering if anyone has used commutative effects before? The closest I have found on this topic concerns "commutative monads" where effect ordering doesn't matter. However, they don't seem to be doing many interesting things with them beyond relaxing ordering constraints for parallel computations, and they also don't seem to talk about many interesting commutative effects (just Maybe and Reader?). Also, I wonder how users would feel if they were given a language that restricted some to just imperative effects...would it be overly restrictive or a nice addition to an otherwise pureish language? I'm still writing this up, but the system has been expressive enough for my live programming work (e.g. it can be used to write a compiler). By Sean McDirmid at 20130731 00:40  LtU Forum  previous forum topic  next forum topic  other blogs  7416 reads

Browse archivesActive forum topics 
Recent comments
2 days 1 hour ago
2 days 15 hours ago
2 days 18 hours ago
4 days 16 hours ago
4 days 17 hours ago
4 days 19 hours ago
5 days 2 hours ago
5 days 6 hours ago
5 days 9 hours ago
5 days 10 hours ago