是否有人在斯卡拉单子铲球现实世界的问题,有比较,用Java编写相同的代码的完整工作的例子吗?
Answer 1:
所有藏品都单子(这是一个笼统的说法,而不是斯卡拉特定一个),或“有单子”这取决于你想要如何严格地对待此事吧。 斯卡拉也有Option
作为一个单子,右和左预测Either
为好。 您可以在工作中看到自己的单子方面每当你看到一个换理解他们。
Scala中单子的更微妙的例子是解析器组合。 因为经营者隐藏背后的同义词,看起来在语法更好的单子操作更微妙。
Answer 2:
def optionAdd(x:Option[Int], y:Option[Int]):Option[Int] =
for(xx <- x; yy <- y) yield xx+yy
我不敢浪费时间与Java版本,特别是因为有人大大地比我聪明已经做了http://functionaljava.org/examples/1.5/#Option.bind 。 在链接的例子,基本上是做什么optionAdd
确实在无限不够简明的方式。
Answer 3:
看到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中好...开始等待与Java 8单子
文章来源: Scala Monad - Full worked example [closed]