Scala的单子 - 全样例[关闭](Scala Monad - Full worked examp

2019-08-17 04:55发布

是否有人在斯卡拉单子铲球现实世界的问题,有比较,用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]
标签: scala