実世界の問題に取り組み、Javaで書かれた同じコードとの比較をしているScalaモナドの完全な例を持っている人はいますか?Scala Monad - 完全に動作する例
7
A
答えて
11
すべてのコレクションは、モナドです(これは一般的なステートメントであり、Scala固有のものではありません)。 ScalaのモナドはOption
、右と左の投影はEither
です。あなたは彼らとの理解を見るときはいつでも、仕事中のモナドの側面を見ることができます。
Scalaのモナドのより微妙な例は、パーサーコンバイナです。演算子は、モナド演算を文法的に見栄えの良い同義語の後ろに隠すので、より微妙です。
9
def optionAdd(x:Option[Int], y:Option[Int]):Option[Int] =
for(xx <- x; yy <- y) yield xx+yy
私は私よりも大幅に賢く誰かがすでにhttp://functionaljava.org/examples/1.5/#Option.bindをした特別なので、Javaのバージョンとの時間を無駄にあえてしません。リンクの例では、基本的にはoptionAdd
の処理が無限に簡潔になります。
2
は、4つのクライアントにモナドを使ってhttp://jazzy.id.au/default/2012/11/02/scaling_scala_vs_java.html
例えば非同期呼び出しを参照してください。
for {
user <- getUserById(id)
orders <- getOrdersForUser(user.email)
products <- getProductsForOrders(orders)
stock <- getStockForProducts(products)
} yield stock
Futuesはモナドと内包が良く、Javaで非同期コード
を構成するために使用することができますのためのものです...スタート待機中Monads with Java 8
関連する問題
- 1. JQGridとMVCの完全な動作例
- 2. Scala汎用Monad関数?
- 3. SCALA:完全な.sqlファイルを実行
- 4. Jetty HTTP 413ヘッダー完全なエラー - Java/Scala
- 5. 完全カスタムカメラ2の例
- 6. orientdb:メモリデータベースを完全にシャットダウンする方法(Java/Scala API)
- 7. ScalaのXMLサポートに関する完全なドキュメント?
- 8. 完全に動的にJPA基準を作成する
- 9. CloudKit - 完全で完全なエラー処理の例
- 10. 最初の起動時に完全なユーザープロファイルを作成する
- 11. 活動は完全に
- 12. once()が完全に動作している間にadmin.ref.on()が動作しない
- 13. 上ボーダーカバーボーダーを完全に作成する
- 14. XMLで定義するとアニメーションが完全に動作し、コードで完全に1回のみ - Android
- 15. Scalaを完全に避けて、単にPlay!フレームワーク
- 16. ストアドプロシージャはSSMSでのみ完全に動作します
- 17. ActiveAdminがHerokuで完全に機能していないため、ローカルで完全に動作します。 Railsアプリケーション
- 18. 猫ランタイム例外を与える未来のMonad
- 19. PHP:ReflectionMethod :: invokeArgs() - 不完全例外トレース
- 20. Github REST APIの完全な例
- 21. Lagomのメッセージブローカーの完全な例
- 22. 趣味の投稿と完全な例
- 23. 例の完全な説明を表示
- 24. eclipse.buildScript完全なスクリプト例は、ヘッドレスビルド
- 25. WebApi 2 + OData v4完全な例
- 26. Android DBFlow 1対多の完全な例
- 27. UITableviewcellが不完全なスワイプ行が完全スワイプ行として動作するのはなぜですか?
- 28. scalaz Monadを使用した例
- 29. jQuery自動完全問題
- 30. 互換性ビューを使用すると完全に動作するウェブサイト
これはスケーラの例ではありませんが、これはJavaのMaybeモナドのかなり深い研究です(いくつかのHaskell noどのようにより多くの言語がこれに対処することができるかを見てください):http://logicaltypes.blogspot.com/2011/09/monads-in-java.html –
誰かがしていませんか? –
モナドのコンセプトは、それが見えるほど奇妙ではありません。より良いか悪いかにかかわらず、カテゴリー理論からのこの用語は非常に実用的ですが、今日のプログラミングの精神的思考師は、理論を強く強調しない(さらには説得する)ことです。私の考えでは、これは恥となり、ソフトウェアは「エンジニアリング」の領域から失格になります。 –