go


개요

인자로 함수리스트를 받아 첫 번째 인자값을 초기값으로 하여, 두 번째 인자부터 함수들의 리스트를 받아 반환 값을 다음 함수로 넘겨 함수를 리턴합니다.

예를들어 go(0, f1,f2,f3,f4..,fn)으로 go라는 함수를 호출하게 될 경우 0을 초기값으로 다음 인자값으로 넘어온 함수들에게 차례차례 각각의 반환값을 전달하면서 결과들이 축약되어 최종 fn(...f4:return)이 수행되는 것입니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ea6b3490-93d3-4607-8df5-3d55d3b0a749/_2020-08-11__9.28.06.png

예제코드


pipe


개요

go 함수와의 가장 큰 차이점은 go는 인자값으로 들어온 함수에서 즉시실행하여 결과값을 반환해 다음 함수로 전달한다면 pipe 함수는 함수자체를 반환하여 최종적으로 인자값으로 받은 함수리스트를 합성해서 합성된 합수를 가지고 로직을 수행합니다.

pipe 함수 flow

pipe 함수 flow

예제 코드