喷雾指令如何与延续相对应?

时间:2016-10-20 21:00:57

标签: scala spray continuations continuation-passing

我没看到喷雾指令如何与continuation passing style (CPS)对应。

更具体地说,延续是NSPhotoLibraryUsageDescription(在Haskell中),但是当使用spray directives(其类型为{{}时,我无法找到此类型((a -> r) -> r)的位置1}} (a -> r) -> r)。

Route->Route type Route = RequestContext => Unit也不类似于Route->Route,那么指令与CPS的关系如何?

有人可以展示spray的指令correspond如何继续传递样式吗?

1 个答案:

答案 0 :(得分:0)

最简单形式的指令定义为

abstract class Directive[L <: HList] {
  def happly(f: L => Route): Route
}

这恰好是(a -> r) -> r。您在spray directives文档中看到的是一个高级DSL,它可以构建Directive个实例。您可以在Directive.scala

中查看完整定义