我有一個非常大的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