問題タブ [happstack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
473 参照

haskell - MACIDとは?

私は最近、HAppSおよびHappstackプロジェクトを見つけました。後者は、その使命の 1 つは「MACID の使用を活用する」ことであると述べています。

MACID とは正確には何ですか?

0 投票する
2 に答える
541 参照

haskell - Problems trying out happstack-tutorial

I've been reading about Happstack and decided to give it a shot. I'm running xubuntu 9.10 and got to this page in the tutorial which told me to do cabal install in the tutorial folder. When I did this, I got the following errors:

Is this telling me that some packages need <2 and others need >=2 ?

I tried to install both 1 and 2 via apt-get but it does not work. I get the same errors. If anyone can provide suggestions, I'd appreciate it.

0 投票する
2 に答える
264 参照

haskell - Happstack.State メソッドを QuickCheck する良い方法はありますか?

QuickCheck を使用してテストしたい Happstack.State MACID メソッドのセットがありますが、それを達成するための最もエレガントな方法を見つけるのに苦労しています。私が直面している問題は次のとおりです。

  • Evモナド計算を評価する唯一の方法は、またはIOを介し​​てモナド内で行うことです。queryupdate
  • 純粋にインメモリ MACID ストアを作成する方法はありません。これは設計によるものです。したがって、IOモナドで実行するということは、各テスト後にクリーンアップする一時ファイルがあることを意味します。
  • initialValue状態を除いて、新しい MACID ストアを初期化する方法はありません。Arbitraryステート ホールセールを置き換えるアクセス メソッドを公開しない限り、生成することはできません。
  • 上記のすべてに対処するということは、MonadReaderor ( の機能のみを使用するメソッドを記述し、 orの代わりにMonadStateテストを実行することを意味します。これは、メソッド定義内でorなどを使用しないことを意味します。ReaderStateEvgetRandomgetEventClockTime

私が見ることができる唯一のオプションは次のとおりです。

  • 使い捨てのディスク上の MACID ストアでメソッドを実行し、各テスト後にクリーンアップし、毎回開始するように調整しinitialValueます。
  • ほとんどのコードがMonadReaderorで実行されるようにメソッドを記述し (テストがより簡単です)、必要に応じてorMonadStateを呼び出す、その周りの少量の QuickCheck 不可の接着剤に依存します。getRandomgetEventClockTime

私が見落としているより良い解決策はありますか?

0 投票する
2 に答える
650 参照

database - Happstack-状態の概念とドキュメント?

Haskellウェブサーバーを作り始めています。HappstackとHappstack-stateから始めることにしました。そして、Happstack-stateの概念と属性を理解するのが難しいと感じています。新しい種類のデータベースですか?またはシステムのようなオブジェクトグラフ?

その概念と属性(特にACIDについて、ディスク上のデータを永続化する方法について!)を説明できますか、それともドキュメントで説明されていますか?

0 投票する
3 に答える
2814 参照

haskell - Haskell Web フレームワーク

Haskell を使用して簡単な Web アプリケーションを作成しています。最初は前に Snap を使用し、アプリケーションを実行できましたが、アプリケーションにユーザー入力を追加したいと考えています。
関数へのユーザー入力パラメーターを取得する方法が見つかりませんでした。どうすればそれを行うことができますか?

他にも、Happstack フレームワークも使用していましたが、「Happstack.Server」をインポートできません。私は cabal インストール構成 Happstack を使用します。正常にインストールされましたが、「Happstack.Server」にインポートしようとすると、エラーが発生します。

を使用してプログラムを実行するghc --make HelloWorld.hs -vと、次のようになります。

0 投票する
1 に答える
207 参照

haskell - Haskell/HappStackの構文と型署名に関する初心者の質問

どうしてできないの?

しかし、私はこれを行うことができますか?

私はHaskellの初心者ですこれは私がGHCiで試していることです:

0 投票する
1 に答える
638 参照

haskell - HappStack の Haskell モナド msum

から

http://happstack.com/docs/crashcourse/HappstackState.html

サーバーを実行すると、ピークカウンターが増加します

  • 覗いたら1
  • 2 のぞかないとき

問題の関連コードは次のとおりです。

ただし、次のように変更すると

カウンターが増える

  • 覗いたら0
  • 1 のぞかないとき

それは意図した動作ですか?のぞいても、msum の 2 番目のモナドが「漏れている」ように感じます。

0 投票する
2 に答える
351 参照

haskell - happstack で HTML ファイルをテンプレートとして使用する

happstack で blitz やその他のコンパイル時テンプレート ライブラリを使用する方法に関するドキュメントはたくさんありますが、html ファイルをテンプレートとして使用する方法を知りたいです。

0 投票する
1 に答える
207 参照

haskell - このHappstackフォームコードの一部をリファクタリングする方法はありますか?

HappstackチュートリアルのGETとPOSTを1つのハンドラー関数にまとめようとしているので、常に一緒になっています。これは、私が達成したことですが、見苦しいようです。

変更したいのは次のとおりです。

  1. methodM GETただの失敗ではなく、明示的に呼びかけます。

  2. 冗長なok $ toResponseものを引き出して、1か所だけにします。

  3. できれば、POSTでHTMLも返すようにしてください。

  4. より多くの経験を持つ人には「オフ」に見える他のもの。何か案は?

更新:#1を理解しました。do methodM GET上に追加しても問題ありok $ toResponse $ ...ませんが、私のような初心者が注意するのは、垂直に並べる必要があることです。つまり、 minはoinmethodMの真上にある必要がありますok。うまくいけば、これは誰かの欲求不満の時間を節約します。

更新2:#3はかなり簡単でした-POSTの最後の行を更新するだけですok $ toResponse $ html $ do B.body $ toHtml $ user ++ ...

0 投票する
2 に答える
269 参照

haskell - happstack チュートリアル コードの冗長性を減らす

happstack チュートリアルには、次のサンプルが用意されています。

ここでok $は冗長なようです.3回msum書く必要がないように、それを取り除く方法はありますか? ok $私は次のことを試しましたが、コンパイルさえしません:

ok $ "You did a "これを行う正しい方法はありますか (またはさらに良いことに、 andの全体を引き出します".\n")、または単に不可能ですか?

私はまだ Haskell でモナドがどのように機能するかについて理解を深めていますが、上記が不可能な場合は、なぜこれを機能させる合理的な方法がないのか、または何を変更する必要があるのか​​を大まかに説明していただけますか?可能にするには?ここでできることとできないことについて頭を抱えようとしているだけです。