我正在尝试使用折叠或更好,mkString
来连接我在DList
val dlist = DList("a", "b", "c")
所以我得到一个字符串:"abc"
显然,对于scala中的常规列表,list.mkString
可以胜任。
Merging a list of Strings using mkString vs foldRight
在scoobi的分布式列表中有一种简单的方法吗?
答案 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