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

Browse archivesActive forum topicsNew forum topics

Recent comments
9 hours 16 min ago
10 hours 35 min ago
10 hours 58 min ago
14 hours 29 min ago
20 hours 20 min ago
20 hours 27 min ago
22 hours 22 min ago
1 day 7 hours ago
2 days 3 hours ago
2 days 13 hours ago