목록커링함수 (2)
코딩쌀롱
함수형 프로그래밍에 대해 공부하면서 고민했던 과정들을 정리해보려고 한다. 1. 클래스를 사용해야 할까? 처음에 했던 생각 ➙ this.prop은 클래스 내 속성으로 함수에서 사용하면 외부 변수를 사용한 게 된다. 순수 함수를 작성하기 위해서는 외부 변수를 사용하면 안 되므로, 클래스 내 속성을 함수의 인자로 받는 것으로 모두 바꿨다. 속성을 사용하지 않게 되면서 굳이 class의 사용 필요성을 못 느껴 클래스를 없애고 함수표현식만으로 작성했다. 더 생각해보면, ➙ 클래스 내에 다른 메서드를 사용할 경우 this를 쓸 수 밖에 없는데, this를 쓴다는 것은 인스턴스를 참조한다는 것이고, 이 자체가 외부 변수를 사용한다는 것이 되므로, 클래스 내 메서드에서 순수함수를 만든다는 것은 쉽지 않을 것 같다. 메..
부분 적용 함수(partially applied function) 부분 적용 함수란 n개의 인자를 받는 함수에 미리 m개의 인자만 넘겨 기억시켰다가, 나중에 n-m개의 인자를 넘기면 비로소 원래 함수의 실행 결과를 얻을 수 있게끔 하는 함수이다. this를 바인딩해야 하는 점을 제외하면 bind 메서드의 실행 결과가 바로 부분 적용 함수다. this를 사용하지 않는다면 bind 메서드만으로 문제없이 구현되겠지만 this의 값을 변경(null)할 수 밖에 없기 때문에 메서드에서는 사용할 수 없다. bind와 다르게 this에 관여하지 않는 부분 적용 함수가 있다면 더 좋을 것이다. 1) 부분 적용 함수 구현(1) 첫 번째 인자로 원본 함수, 두 번째 인자 이후부터는 미리 적용할 인자들을 전달하고, 반환할 ..