Итак, я новичок в функциональном программировании, и я все еще пытаюсь переварить основополагающие принципы. До сих пор я могу оценить, что в идеале необходимо кодировать без изменяемые переменные, присвоения, петли и другие императивные структуры управления. Поэтому у меня есть вопрос. Между следующие два кода snipets:Принципы функционального программирования
def enrich(xRDD: RDD[xObject], yRDD: RDD[yObject], zRDD: RDD[zObject]): RDD[Result] = {
val temp = functionA(xRDD, yRDD)
functionB(temp, zRDD)
}
и
def enrich(xRDD: RDD[xObject], yRDD: RDD[yObject], zRDD: RDD[zObject]): RDD[Result] = {
functionB(functionA(xRDD, yRDD), zRDD)
}
который один я должен выбрать и почему? Моя догадка - вторая, поскольку она позволяет локально присваивать данные временному значению val. Это все для этого? Правильно ли я понял? Я что-то упускаю?
Результат все равно будет в памяти, это просто вопрос читаемости. Если вы можете подумать о хорошем имени для «val temp», то первый вариант лучше. – ipoteka