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  10216 reads

Browse archivesActive forum topics 
Recent comments
1 hour 4 min ago
1 hour 14 min ago
1 hour 18 min ago
8 hours 34 min ago
8 hours 49 min ago
13 hours 31 min ago
16 hours 5 min ago
22 hours 16 min ago
1 day 4 hours ago
1 day 6 hours ago