への RPC 呼び出しに関する 2 つの関連する質問がありますYesod/Snap/Servant
。
Haskell で書かれ、GHC でコンパイルされた関数がサーバー上にあるとします。
add x y = x+y+42
どのようにすることができます:
- クライアントからこの関数を呼び出します (クライアントも Haskell で書かれており、 でコンパイルされています
GHCJS
)。 - サーバー上で関数を実行し、
- 結果をクライアントに返しますか?
これをすべてタイプセーフな方法で行いますか?
たとえば、クライアントで次のようなものを書きたいと思います。
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 ()
どれの
- サーバーに行きます
- サーバーは月の満ち欠けを調べます
Phase
サーバーはクライアントに戻ります- クライアントは JavaScript コンソールに月の満ち欠けを表示します。
質問
Yesod/Snap/Servant
(サーバー) + GHCJS (クライアント)でこれを行うにはどうすればよいですか?