14

我有两个有关 RPC 调用的相关问题Yesod/Snap/Servant

  1. 假设我在服务器上有一个函数,用 Haskell 编写,由 GHC 编译:

    add x y = x+y+42

怎么能:

  1. 我从客户端调用这个函数(客户端也是用 Haskell 写的,用 编译GHCJS),
  2. 在服务器上执行函数,
  3. 将结果返回给客户端?

以类型安全的方式执行所有这些操作?

因此,例如,我想在客户端上写这样的东西:

main= putStrLn $ show $ add 2 3

这样 add 函数就会在服务器上执行。

Yesod/Snap/Servant在服务器上使用 GHCJS 和在客户端使用 GHCJS的最简单方法是什么?

2)同样,我想写一个“函数”: getPhaseOfMoon :: IO Phase它在服务器上运行,我想以getPhaseOfMoon类型安全的方式从客户端调用。

这样我就可以在客户端上写这个:

main= do 
   p<-getPhaseOfMoon
   putStrLn $ show p
   return ()

哪个

  1. 去服务器
  2. 服务器查询月相
  3. 服务器返回Phase给客户端
  4. 客户端在 JavaScript 控制台中显示月相。

问题

我怎样才能用Yesod/Snap/Servant(服务器)+ GHCJS(客户端)做到这一点?

4

0 回答 0