19

自分のプロジェクトで Haskell をもっと使いたいと思っており、Web アプリで Haskell を使い始めることができれば、その目的に本当に役立つと思います。私はハップスを1、2回試しましたが、地面から降りるのに苦労しました。私が使用できる、より単純でより従来型の (ランプのような) フレームワークはありますか?

4

8 に答える 8

16

2011 年現在の最良のツールは次のとおりです。

Haskell を中心とした Web 開発コミュニティは、これらのコミュニティ間の競争で繁栄してきました。

著者はここでフレームワークを比較しています: Haskell の Snap と Yesod Web フレームワークの比較

于 2011-04-17T19:22:29.817 に答える
4

HAppsを使用する場合は、HAppsアプリケーションとして開発されているこの優れたサンプル駆動型チュートリアルを確認することをお勧めします 。HAppsチュートリアル

于 2008-09-16T00:59:59.177 に答える
4

最高の機能/コード サイズ比のアイデアで MFlow を開発しました。MFlow は他のフレームワークを念頭に置いて作成されていませんが、Haskell を限界まで使用して Web アプリケーションの問題を解決し、Web プログラミングのノイズとエラー率を大幅に削減します。MFlow アプリケーションのナビゲーション全体は、コンパイル時に安全です。標準の Web ライブラリを使用します: WAI、formlets、stm、blaze-html..

自分で判断してください: これは 3 ページの完全なアプリケーションです。ループでは、2 つの数値を要求し、合計を表示します。好きなときに戻るボタンを押すことができます:

module Main where
import MFlow.Wai.Blaze.Html.All

main= do
   addMessageFlows  [("sum", transient . runFlow $ sumIt )]
   wait $ run 8081 waiMessageFlow

sumIt= do
   setHeader $ html . body
   n1 <- ask $  p << "give me the first number"  ++>  getInt Nothing
   n2 <- ask $  p << "give me the second number" ++>  getInt Nothing
   ask $ p << ("the result is " ++ show (n1 + n2)) ++> wlink () << p << "click here"

少し変更するだけで、状態を永続化できます。

http://hackage.haskell.org/package/MFlow

ここに例があります: http://haskell-web.blogspot.com.es/

于 2013-04-26T09:08:50.923 に答える
3

これは、wiki からの Haskell に関する Web 関連のブログ投稿のリストです

さらに、次の大きな Haskell Web フレームワークはWASHです。

また、Apple webobjects ベースのドメイン固有言語もあります。

于 2008-09-09T06:21:32.253 に答える
2

Web アプリケーション インターフェイス(WAI) は、アプリをその上に構築できる非常に優れたベース レイヤーです。ルーティングやテンプレート作成などのハックには、WAI と組み合わせてうまく機能する素敵なライブラリがたくさんあります。

于 2012-10-22T18:43:13.253 に答える
1

Yesod は良い選択です。O'Reilly のYesod Web Framework Bookをオンラインで見つけることができます。

于 2012-10-21T09:54:42.610 に答える
1

wiki のHaskell Web Development記事にリストされているように、CGI と (x)html コンビネーター ライブラリを使用できます。Haskellでの Web プログラミング用のライブラリ、フレームワークなどのより大きな概要は、Haskell での Web プログラミングの実践 にあります。

于 2008-09-15T15:16:46.410 に答える
0

HAppsWASHほどの牽引力は得られていないようですが、Hope (リンクは減価償却されています)もあります。しかし、サイトも約1年間静かです。

于 2008-09-16T08:52:44.047 に答える