Scala mkString在Scoobi Dlist中等效

时间:2015-06-25 07:29:31

标签: scala scoobi

我正在尝试使用折叠或更好,mkString来连接我在DList

中的字符串
val dlist = DList("a", "b", "c")

所以我得到一个字符串:"abc"

显然,对于scala中的常规列表,list.mkString可以胜任。

Merging a list of Strings using mkString vs foldRight

在scoobi的分布式列表中有一种简单的方法吗?

1 个答案:

答案 0 :(得分:3)

有一种方法DList.fold

/**Sum up the elements of this distributed list. */
def fold(implicit m: Monoid[A]): DObject[A] =
  reduceOption(R.semigroup) map (_ getOrElse m.zero)

由于您的案例中的A类型为String,而scalaz提供的实例为Monoid[String],因此我们可以使用DList.fold

// make sure there's a Monoid[String] instance in scope
import scalaz._, Scalaz._

val xs = DList("a","b","c")
xs.fold