0%

Continuation Passing Style

由於Asynchronous Programming大行其道之後,Continuation Passing Style就再度被人們注意到。
在介紹Continuation Passing Style(之後簡稱CPS)之前,先要介紹一下什麼是Continuation。指的是完成某件事情之後,接下來還需要做的情情

而什麼是CPS,就是將Continuation當做參數傳入函數之中。

1
2
3
 
let add a b = a + b
printfn "%i" (add 3 5)

而CPS的寫法會是

1
2
3
 
let add a b cont = cont(a + b)
add 3 5 (printfn "%i")

兩者能夠得到一樣的結果,不過光看這麼簡單的範例,看不出CPS優勢和在。