This is a created article in which the information may have evolved or changed.
Package Mainimport ( "FMT" " runtime" " Runtime/debug")//returns a pipeline that generates a sequence of natural numbers: 2, 3, 4, ... func generatenatural () Chan int { ch: = make (chan int) go func () {for I: = 2;; i++ { ch <-i } } () return ch}// Pipeline filter: Delete Number of Func primefilter (in <-chan int, prime int) Chan int {out : = make (chan int) go func () {
for { If I: = <-in; I%prime! = 0 { out <-i }} } () return out}//Prime sieve: Daisy Chain model func mai N () { runtime. Gomaxprocs (1) Debug. SetMaxThreads (5) ch: = generatenatural ()//Natural number sequence: 2, 3, 4, ... For I: = 0; I < 100; i++ { Prime: = <-ch//new prime number FMT. Printf ("%v:%v\n", i+1, prime) ch = primefilter (ch, Prime)//filter based on new prime number construction }}