2012-06-14 3 views
1

무엇이 여기에 있습니까? 이 calculateHaarWaveletI의 정의에지도에서 스칼라 유형 불일치 오류가 발생했습니다.

object HaarWavelet { 

    def calculateHaarWavelet(ls: List[Double]): List[Double] = { 
    if (ls.length % 2 != 0) throw new RuntimeException("Need even number of elements to calculate HaarWavelet") 
    calculateHaarWaveletI(ls, ls.length) 
    def calculateHaarWaveletI[Double](ls: List[Double], n: Int): List[Double] = { 
     Console.println(list2Tuples(ls.take(n))) 
     null 
    } 
    null 
    } 

    def processTuple(x: (Double, Double)): (Double, Double) = { 
    val f = (x._1 + x._2)/2 
    (f, x._1 - f) 
    } 

    def list2Tuples(ls: List[Double]): List[(Double, Double)] = { 
    if (ls.isEmpty) return List() 
    (ls.head, ls.tail) match { 
     case (_, Nil) => List() 
     case (x, y) => List((x, y.head)) ::: list2Tuples(y.tail) 
    } 
    } 

    def main(args: Array[String]) { 
    Console.println("Starting....") 
    Console.println(calculateHaarWavelet(List(8.0, 4.0))) 
    Console.println("Done....") 
    } 
} 

답변

4

귀하의 형식 매개 변수 Doublescala.Double 섀도 잉 ... ... 여기

error: type mismatch; found : List[Double](in method calculateHaarWaveletI)]

required: List[scala.Double]

Console.println(list2Tuples(ls.take(n)))

내 코드는 내가 점점 오전 오류입니다. 형식 매개 변수를 모두 제거하면 코드가 예상대로 작동합니다. 자세한 내용은 내 대답 here을 참조하십시오.

+0

감사합니다. 처음에는 모든 메서드에 형식 매개 변수를 추가 한 다음 나중에 삭제했습니다. –

관련 문제