Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[쏙쏙 들어오는 함수형 코딩] 카피 온 라이트 원칙에 대해서 #62

Open
mdgarden opened this issue May 13, 2024 · 2 comments
Labels

Comments

@mdgarden
Copy link
Owner

불변형 데이터 구조는 함수형 프로그래밍 언어의 일반적인 기능이지만 언어에서 지원하지 않는 경우가 많습니다. 아래는 불변형 데이터 구조를 기본으로 지원하는 언어입니다.

  • 하스켈
  • 클로저
    등등

왜 복사본이 필요한가? 에 대해서 잘 이해를 못하는 중

function add_element_last(array, elem) {
  var new_array = array.slice();
  new_array.push(elem);
  return new_array;
}
@mdgarden
Copy link
Owner Author

인자로 주어진 array가 다른 곳에서 쓰일 수도 있어서?
그럼 깊은 복사, 얇은 복사와 관련이 있는건지?

책에서는 "바뀌는 값은 어디서 사용될지 모르기 때문에 바뀌지 않도록 원칙이 필요합니다." 라고 되어있는데, 이에 대한 구체적인 예시를 보고 싶음

@mdgarden
Copy link
Owner Author

Q. 불변성을 구현하는 일이 조금 많아 보이는데요. 가치 있는 일인가요? 그리고 더 쉬운 것이 맞나요?
A. 카피-온-라이트를 사용하기 위해 함수를 새로 만들지 않아도 된다. 그러나 새로 만들지 않는 것이 오히려 더 시간이 걸릴 때가 있다. 카피-온-라이트가 반복적이고 시간이 많이들어가는 것처럼 보이나, 만들어야할 동작이 그리 많지 않고 만들어두면 재사용을 하거나 조합할 수 있게 되므로 카피-온-라이트 함수를 만들 것을 추천함.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant