32

Google Dart 言語は関数型プログラミングを可能にしますか? 特に、次の機能はサポートされていますか?

  • 変数 (参照) として格納された関数、
  • 関数カリー化、
  • 遅延パラメーター

関数型プログラミングの他の機能?

Dart は不変データをサポートしていないようです。

4

7 に答える 7

9

「関数型プログラミング」の意味によって異なります。関数は第一級のオブジェクトであり、ポイント 1 をカバーし、Function.applyカリー化を自分で実装できるようにするため、ポイント 2 をカバーしますが、それ以外は、Dart はあまり機能的ではありません (不変性 -- いいえ、参照透過性 -- いいえ、遅延評価 -- いいえ、他に何がありますか -- おそらくいいえ)。

于 2013-05-25T06:52:17.247 に答える
3

dartzと呼ばれるより一般的なソリューションがあるようです

ダーツ

  • 型クラスの階層構造は、catsscalaz、および標準的な Haskell ライブラリの精神に基づいています。
  • IVector、IList、IMap、IHashMap、ISet、および AVLTree を含む、不変で永続的なコレクション
  • Option、Either、State、Tuple、Free、Lens、および関数型スタイルでプログラミングするためのその他のツール
  • 評価、Reader+Writer+State+Either+Future スイス アーミー ナイフ モナド
  • 含まれる型、およびいくつかの標準的な Dart 型の型クラス インスタンス (Monoid、Traversable Functors、Monad など)
  • 純粋な機能ストリーミングの実装であるコンベア
  • コアコンセプトを紹介する

使い方がわかりませんでしたが、例があります。

于 2020-11-26T14:55:59.190 に答える
3

Dart FP エクスペリエンスをさらに向上させるパッケージ https://github.com/vsavkin/fpdart

末尾再帰に関する未解決の問題 https://code.google.com/p/dart/issues/detail?id=29

于 2014-03-09T10:28:07.243 に答える