我有一个非常大的List[A]
和函数f: List[A] => List[B]
。我想将分割为将我原来的列表分成最大大小的子列表,依次将这个函数应用到每个子列表中,然后将非分割的结果合并成一个大的List[B]
。这很简单:斯卡拉斯分裂计算分部分
def split[T](l : List[T], max : Int) : List[List[T]] = //TODO
def unsplit[T](l : List[List[T]]) : List[T] = //TODO
def apply[A, B](l : List[A], f : List[A] => List[B], max : Int) : List[B] = {
unsplit(split(l, max).map(f(_)))
}
我想知道scalaz是否提供标准的东西要做到这一点开箱?特别是apply
方法?
麻烦的是我的'f'是'M [A] => M [B]':我在scalaz中看不到任何东西可以帮助解决这个问题(我只看到像A => M [B] ''''M [A => B]'等) – 2010-05-14 15:17:35
'val f:List [A] => List [B] = ...; (分组映射f join):列出[B]' – retronym 2010-05-14 15:26:10