2

やあ!

各ノードに各ページの HTML コンテンツが含まれる Haskell の巨大なマルチノード ツリーがあるとします。

Yesod を使用して、ユーザーは URL /myPage と Handler を使用して Web ページにアクセスします。

getMyPageR :: Handler Html 

が呼び出されます。

私が欲しいのは、現在のツリー ノードによって生成されるページの HTML コンテンツです。

ツリーでは、ルートから始めて、現在のノードの HTML コンテンツを抽出し、それを現在のページとして表示します。各ページには、ユーザーの選択を表す複数のボタンがあります。現在のノードの子ごとに 1 つのボタンがあります。次に、ユーザーの選択に応じて、ユーザーが選択した特定の子までツリーが 1 レベル下がり、新しい HTML コンテンツが表示されます。その後、ユーザーは別の選択を行うことができます。ツリーは再び 1 レベル下に移動し、新しい HTML コンテンツが表示されます。などなど。

基本的に、ユーザーが選択するたびに、リーフ ノードに到達するまでツリーが 1 レベル下がります。

Haskell の Zippers を使用してこれを実装することを考えていたので、ツリーを簡単に移動して、移動した場所のパンくずリストを保持できます。

Yesod でこれを実装するための良い解決策は何ですか? この優れたソリューションに、ジッパーの使用を含めてほしいと思います。

解決策の 1 つは、同じページで POST/Redirect/GET を使用してセッションを介してツリーを送信することですが、ツリーが大きすぎる場合は機能しません。

質問が十分に明確でない場合は、遠慮なく質問を明確にしてください。

前もって感謝します。

4

0 に答える 0