공부일지(TIL)/JavaScript

Currying, Compose, Deterministic

Alledy 2019. 3. 7. 16:47

Currying - 하나의 패러미터만 받게끔 만드는 것


Compose - 뭐라 설명해야 할지..


// Avoding Side Effects, functional purity

var a = 1;
function b() {
a = 2;
}

함수는 작은 우주라고 생각하면 된다. 위 코드를 보면 함수 b가 함수 바깥에 영향을 끼치고 있는데 그것을 side effect라고 하고, 이것을 줄임으로써 functional purity를 획득할 수 있다. 이렇게 함으로써 'Deterministic'될 수 있는데 어떤 인풋을 넣더라도, 몇번을 시행하든, 리턴밸류가 항상 같다는 것이다. (console.log도 alert도 없고, undefined 되지도 않고, 항상 같은 밸류를 리턴) -> avoiding bug에 좋은 방법.