I want to count up the number of times that a function f
returns each value in it's range (0
to f_max
, inclusive) when applied to a given list l
, and return the result as an array, in Scala.
Currently, I accomplish as follows:
def count (l: List): Array[Int] = {
val arr = new Array[Int](f_max + 1)
l.foreach {
el => arr(f(el)) += 1
}
return arr
}
So arr(n)
is the number of times that f
returns n
when applied to each element of l
. This works however, it is imperative style, and I am wondering if there is a clean way to do this purely functionally.
Thank you
how about a more general approach: