Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何正确地在方尖碑中进行嵌套布线?_Haskell_Haskell Snap Framework_Reflex - Fatal编程技术网

Haskell 如何正确地在方尖碑中进行嵌套布线?

Haskell 如何正确地在方尖碑中进行嵌套布线?,haskell,haskell-snap-framework,reflex,Haskell,Haskell Snap Framework,Reflex,然而,大多数示例都执行路由方法->路径段“firstpath”$unitEncoder mempty,而不是单个嵌套路由 有一些示例使用Cat.id将整个URI作为文本传递,例如: backendRouteEncoder=mkFullRouteEncoder (完整路由\后端后端路由\缺少:/()) (\case) BackendRoute_API->PathSegment“API”$Cat.id BackendRoute_Missing->PathSegment“Missing”$unitEn

然而,大多数示例都执行
路由方法->路径段“firstpath”$unitEncoder mempty
,而不是单个嵌套路由

有一些示例使用
Cat.id
将整个URI作为文本传递,例如:

backendRouteEncoder=mkFullRouteEncoder
(完整路由\后端后端路由\缺少:/())
(\case)
BackendRoute_API->PathSegment“API”$Cat.id
BackendRoute_Missing->PathSegment“Missing”$unitEncoder mempty
)
然后在后端解析整个路由:

服务器sql(后端路由API:=>Identity=dir“API”$ 路由[(“拼写列表/”,runReaderT spellListHandler sql) ,(“featlist/”,runReaderT featListHandler sql) ] 然而,这感觉很奇怪,因为我本以为所有路由都是在
Common.Route
中定义的,使用
方尖塔.Route
按照
ob init
的框架和其他专门定义路由的示例。我希望通过数据类型编码路由对lambdase进行穷尽性检查的安全性,并且不必在所有可能的后端/前端子例程上添加BackendRoute_Missing等效项

data FrontendRoute :: * -> * where
  FrontendRoute_Sub :: FrontendRoute (R SubRoute)
data SubRoute :: * -> * where
  SubRoute_Foo :: SubRoute ()
然后将
unitEncoder
替换为
pathComponentEncoder$\case…

另一个例子见