continuation的類(lèi)型是 (a -> r) -> r
輸入是一個(gè)(a->r)的函數(shù)惰说,輸出是r
add_cps :: Int -> Int -> ((Int -> r) -> r)
add_cps x y = \k -> k (add x y)
square_cps :: Int -> ((Int -> r) -> r)
square_cps x = \k -> k (square x)
pythagoras_cps :: Int -> Int -> ((Int -> r) -> r)
pythagoras_cps x y = \k ->
square_cps x $ \x_squared ->
square_cps y $ \y_squared ->
add_cps x_squared y_squared $ k
其中函數(shù)最后一個(gè)參數(shù)就是continuation庸推,類(lèi)型為(Int->r)->r
需要一個(gè)處理Int的函數(shù),返回值是r镇匀,然后就調(diào)用這個(gè)函數(shù)返回r