web-dev-qa-db-ja.com

関数型プログラミングには、適切なWebフレームワークがありますか?

関数型プログラミングを使用していくつかのWebプログラミングを実行したいと思います。関数型プログラミング言語には、適切なWebフレームワークがありますか?

26
Jonas

Lift はScalaの興味深いフレームワークです。 Scalaの実際的な利点は、既存のJavaライブラリを使用できることです。

6
Matt Olenik

他にもたくさんありますが(F#で開発している場合でも)、これら(および前述のLift)は最も完全で人気があり、文書化されていると思います。 Erlangフレームワークについてはコメントできません。

11

Erlangで使用できる list のWebフレームワークがあります。ここにそのリストを要約すると:

それらのうち、私が最も興味を持っているように見えるのはwebmachinenitrogen。 YMMV。

Noir は美しく、機能的でシンプルです(リッチヒッキーでは " Simple Made Easy "の意味で):

(defpage "/welcome" []
    "Welcome to Noir!")

(server/start 8080)

特に、Nice宣言型DSLを有効にするためにいくつかのマクロでサポートされている関数構成を使用して、Webアプリケーション全体を構築できる方法が好きです。

8
mikera

Compojureは、Clojureプログラミング言語用のオープンソースのWebフレームワークです。

http://en.wikibooks.org/wiki/Compojure

7
Robert Harvey

質問から言語を除外したので、複数の言語を受け入れると思います...

したがって、F#言語には FSharp.WebTools が存在します。

F#Webツールは、1つのタイプチェックされたプロジェクトで同種のクライアント/サーバー/データベースWebアプリケーションを作成するためのツールでF#ディストリビューションを強化します。クライアントとサーバーのモーダルな違いはF#ワークフローを使用して確認され、LINQをデータベースアクセスに使用できます。最初のバージョンでは、アプリケーションの一部がJavaScriptとして動的に提供されます。計画されている拡張機能には、クライアント側の部分をSilverlightコードとして提供することが含まれます。

3
Tamara Wijsman

Erlangと yaws を調べることをお勧めします。 Erlangは軽量の関数型プログラミング言語であり、優れた機能セット、優れたライブラリ、アクティブな開発コミュニティを備えています。 Yawsは効率がよく、十分に管理されています。

2
lambmj

Snap は、Haskellのナイスで本当に高速なWebフレームワークです。

haskellプログラミング言語で書かれた、UNIXシステム用のシンプルなWeb開発フレームワーク。 Snapはテストカバレッジのレベルが高く、十分に文書化されています。機能は次のとおりです。

  • 高速HTTPサーバーライブラリ
  • Webプログラミングのための賢明でクリーンなモナド
  • ページを生成するためのHTMLベースのテンプレートシステム...
1
Tikhon Jelvis

GithubにErlang Webフレームワークの比較があります:

https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks

私はそこにリストされているすべてのフレームワークで遊んだわけではないので、判断したくありませんが、現在のプロジェクトではZotonicをかなり広範囲に使用しており、心からお勧めできます。私が知る限り、それはフレームワークだけでなく本格的なCMSでもある唯一のErlangフレームワークです。したがって、CMS機能だけで簡単に開始し、独自のモジュールを使用してカスタム機能を追加することで、Webサイトを拡張できます。私の場合は、純粋にフレームワークとして使用しています。現時点では、CMS機能はPostgreSQLでのみ機能し、別のデータベースを使用できないためです。しかし、フレームワークとしても、他のフレームワークには必ずしもない多くの機能を提供します。

非常に素晴らしいのは、Zotonicの背後にいる人々がWebサイトを設計および実装し、選択したCMSとして使用するため、プロジェクトが非常に活発に開発されていることです。

私が選択しなければならなかった場合、私はおそらくZotonicに最初のチャンスを与え、それからChicagoBoss、そして次にNitrogenを与えます。

0
Greg