Долгое время Java-программист медленно учил scala (любя его, кстати), и я думаю, что мой ум все еще обертывается вокруг концепции написания вещей функционально. Прямо сейчас я пытаюсь написать простой визуализатор для некоторых движущихся текстур 2d. Императивный подход достаточно прост, и я уверен, что большинство из вас узнают этот относительно вездесущий блок кода (материал был изменен для защиты невинных):
class MovingTexture(var position, var velocity) extends Renders with Advances {
def render : Unit = {...}
def advance(milliseconds : Float) : Unit = {
position = position + velocity * milliseconds
}
}
Этот код будет работать очень хорошо, однако он имеет тонны изменчивого состояния, а его функции изобилуют побочными эффектами. Я не могу позволить себе уйти от этого, должен быть лучший способ!
У кого-нибудь есть удивительное, элегантное, функциональное решение этой простой проблемы? Кто-нибудь знает об источнике, где я мог бы больше узнать о решении таких проблем?