val dimensionality = 10
  val zeros = DenseVector.zeros[Double](dimensionality)
  @tailrec private def specials(list: List[DenseVector[Int]], i: Int): List[DenseVector[Int]] = {
    if(i >= dimensionality) list
    else {
      val vec = zeros.copy
      vec(i to i) := 1
      specials(vec :: list, i + 1)
    }
  }
  val specialList = specials(Nil, 0).toVector
  specialList.map(...doing my thing...)
Should I write my tail recursive function using a List as accumulator above and then write
specials(Nil, 0).toVector
or should I write my trail recursion with a Vector in the first place? What is computationally more efficient?
By the way: specialList is a list that contains DenseVectors where every entry is 0 with the exception of one entry, which is 1. There are as many DenseVectors as they are long.
 
     
    