Skip to content

Instantly share code, notes, and snippets.

@g14a
Created August 29, 2018 03:26
Show Gist options
  • Save g14a/a307fbe2399f14cf400cd4bfc0dbe372 to your computer and use it in GitHub Desktop.
Save g14a/a307fbe2399f14cf400cd4bfc0dbe372 to your computer and use it in GitHub Desktop.
package main
import "fmt"
func Generate(ch chan<- int) {
for i := 2; ; i++ {
ch <- i
}
}
func Filter(in <-chan int, out chan<- int, prime int) {
for {
i := <-in // Receive value from 'in'.
if i%prime != 0 {
out <- i
}
}
}
func main() {
input := make(chan int)
go Generate(input)
for i := 0; i < 2000; i++ {
prime := <-input
fmt.Println(prime)
output := make(chan int)
go Filter(input, output, prime)
input = output
}
fmt.Println()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment