Мне нужно создать функцию, которая возвращает List [List [Option [Double]]], где функция принимает List [String] символов фондового рынка и диапазон лет, на которые функция должна смотреть, поэтомучто-то вроде Range [2000, 2019, 1].
Функция вызовет другую функцию:
def price(symbol: String, year: Int) : Option[Double] = ...
Возвращает Option [Double] либо Some (double), либо None. Допустим, функция, которую я пытаюсь создать, принимает List ("GOOG", "AAPL") и Range [2010, 2013, 1], результаты должны выглядеть примерно так:
List(List(Option for Google 2010, Option for Apple 2010),
List(Option for Google 2011, Option for Apple 2011),
List(Option for Google 2012, Option for Apple 2012)).
Я неразрешено использовать 'var' в моем коде, только 'val' и, конечно, это означает, что после объявления не может быть никаких изменений.
Итак, я спрашиваю, как мне создать этот список [List [Option [Double]]], когда я не знаю, сколько значений будет в List [String] или Range. Я предполагаю, что это не возможно поставить точку в цикле for, и все это должно происходить во время объявления списка.
Пока что единственное, о чем я могу думать, это сделать что-то построки:
val returnList : List[List[Option[Double]]] = List(x => rangeIn.foreach(List(y => symbolsIn.foreach(price(y, x)))))