표 5-2에 정리한 세 기능은 파이프라인 형태로 연결되어야 한다.

첫 번째 단계의 실행 결과가 두 번째 단계의 입력으로 전달되고, 두 번째 단계의 실행 결과가 세 번째 단계의 입력으로 전달되도록 채널로 각 함수를 재구성해 보자.
1. find(path string) <-chan string
2. grep(pattern string, in <-chan string) <-chan string
3. display(in <-chan result)
함수 세 개를 다음과 같이 채널로 연결해 보자.
path, pattern := parseArgs()
ch1 := find(path)
ch2 := grep(pattern, ch1)
display(ch2)
find() 함수의 결과는 grep() 함수의 매개변수로 전달되고, grep() 함수의 결과는 display() 함수의 매개변수로 전달되므로 코드를 다음과 같이 작성할 수 있다.
path, pattern := parseArgs()
display(grep(pattern, find(path)))
셸 명령어를 파이프로 연결한 것과 형태가 유사하다.