오랫동안 자바 프로그래머가 천천히 스칼라를 배우고 있으며, 내 마음이 기능적으로 글쓰기의 개념을 둘러싼다고 생각한다. 지금은 움직이는 2D 텍스처에 간단한 비주얼 라이저를 작성하려고합니다. (물건 무고한을 보호하기 위해 변경되었습니다) 명령형 접근 방식은 간단하다, 나는 당신의 대부분은이 코드 상대적으로 유비쿼터스 블록을 인식 확신 :스칼라 게임 프로그래밍 : 기능적 스타일로 객체 위치를 전진
class MovingTexture(var position, var velocity) extends Renders with Advances {
def render : Unit = {...}
def advance(milliseconds : Float) : Unit = {
position = position + velocity * milliseconds
}
}
이 코드는, 그러나 그것은 가지고, 잘 작동합니다 톤수의 가변 상태와 그 기능은 부작용으로 가득차 있습니다. 나는 이걸 가지고 도망 갈 수 없다. 거기에 은이 더 좋은 방법이되어야한다!
누구나이 단순한 문제에 대해 훌륭하고 우아하고 기능적인 해결책을 갖고 있습니까? 누구든지 이러한 종류의 문제를 해결하는 방법에 대해 더 많은 것을 배울 수있는 출처에 대해 알고 있습니까?
(모든 답변 중에서) 일반적인 컨센서스는 현재 상태를 나타내는 내 개체의 복사본을 만드는 것일 것 같습니다. 이것은 정확히 내가 원하는 것이 아니지만 _this_ 대답은 값의 변화를 표현하는 반복자를 정의하는 것과 같은 생각을위한 흥미로운 음식을 제시합니다. (값의 상태를 표현하는 것보다 ...) 변수가 어떻게 변화하는지 (미적분과 같은 종류)를 나타내는 일종의 함수 (또는 반복)로서의 위치를 표현할 수있는 방법을 찾으십시오. 그래도 멋진 것들을 저에게 소개해 주셔서 감사합니다! – jtb