2016-11-23 4 views
0

この私の問題の簡易版で、私は折り目を停止する条件はあなたが条件をa.size == 7.foldLeftをシンプルリストより早く壊す方法は?

class test1 { 

    def test(a : List[Int]): Int = { 
    val list = a.foldLeft(if(a.size == 7) 1000 else 0)((b,a) => a + b) 

    list 
    } 
} 



object test1 extends App{ 
    val temp1 = new test1() 

    val list: List[Int] = List(1,2,3,4,5,6,7) 

    println(temp1.test(list)) 


} 

を見ることができるように倍に満たされている場合後の値を返します最初の折り目で満たされますが、それが第2回目または第1回目で満たされる場合があります。

+0

あなたが@PavelOliynykねえ、私はわからない – Pavel

+0

あなたの条件の下で、独自の再帰的folderLeftとプロセスのリストを実装する必要がありますここで何を意味しているのですか? – QQQ

+0

以下の回答を参照してください – Pavel

答えて

2

を理解さでどこここから任意の助けに行くようにしてください次のテンプレートをしようとしない:

def Process(A: List[Int]) : Int = { 

    def proces(a: List[Int], acc: List[Int]): Int = a match { 
    case List() => -1 
    case h :: tail => if (acc.length == 10) 1000 else proces (tail, h :: acc) 
    } 
    proces(A, List()) 
} 
関連する問題