0

スプレーのディレクティブが継続渡しスタイル (CPS)にどのように対応するかわかりません。

より具体的には、継続は(Haskell では) ですが、スプレーディレクティブ( whereの型を持つ) を使用(a -> r) -> rすると、この型 ( ) がどこにあるのかわかりません。(a -> r) -> rRoute->Routetype Route = RequestContext => Unit

どちらも似ていませんがRoute->Route、 ディレクティブはCPSとどのように関連していますか?type Route = RequestContext => Unit(a -> r) -> r

誰かがスプレーのディレクティブがスタイルを渡す継続にどのように対応するかを示すことができますか?

4

1 に答える 1

0

ディレクティブは、最も単純な形式で次のように定義されます。

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

これはまさに(a -> r) -> r. スプレーディレクティブDirectiveのドキュメントに表示されるのは、内部でインスタンスを構築する高レベルの DSLです。完全な定義はDirective.scalaで確認できます。

于 2016-10-24T12:26:22.567 に答える