2015-07-10 53 views
71

在伊德里斯效應的紙"Programming and reasoning with algebraic effects and dependent types" by Edwin C. Brady包含(未引用)聲稱:「Monad變形金剛比效果更強大」 - 示例?

雖然[效果和單子變壓器]不在功率等效 - 單子和單子變壓器可以表達多個概念 - 許多常見effectful計算是抓獲。

什麼樣的例子可以用monad變換器來模擬,但不是效果?

+21

這是一個很有用的問題,不僅僅是論文的作者,更多的人可以回答這個問題。一個更強大的例子是允許重複的效果。 –

+5

我想知道這個問題的答案。當我在這裏找到它時,我不想聯繫論文的作者。 – Xoltar

+3

這是一個很好的問題,即使它提到了一些紙張... – Cynede

回答

8

使用CPS可以將延續建模爲monads,但它們不是代數效應,因爲它們不能用Lawvere理論建模。參見Martin Hyland和John Power,2007,The Category Theoretic Understanding of Universal Algebra: Lawvere Theories and Monads (pdf),ENTCS 172:437-458。

+0

感謝您的回答。我正在考慮這個問題,並試圖將類別理論轉化爲更多的計劃 - 讓我的腦海裏浮現出來。 @Eduardo上面評論說,效應是同構的分隔延續。所以我懷疑有一個直覺,那就是無限延拓不能被模擬。效果可能必須限定在某一特定區域,並在有效價值可以逃脫之前處理,而單子更具傳染性。 –

+1

@geoff_h我說代數效應可以模擬爲分隔延續單子的使用,而不是它們是等價的 - 很可能是這種情況,但我並不知道。 – pyon

+0

@Eduardo但Eff確實允許表示分隔延續 - 儘管有時需要遞歸類型。這表明了一個同構 - 效應可以模擬爲劃定的延續,劃定的延續可以建模爲效應 - 但也許Eff也可以代表一些非代數效應 - 雖然我不確定我已經很好地掌握了什麼非代數效應意味着。 –