Download presentation

1
**New Go Programming Language by Google**

2
**Concurrent Programming**

3
Working Principle It works by taking a stream of all the natural numbers and introducing a sequence of filters one for each prime to winnow the multiples of that prime At each step we have a sequence of filters of the primes so far, and the next number to pop out is the next prime which triggers the creation of the next filter in the chain

4
Generate Function // Send the sequence 2, 3, 4, ... to channel 'ch'. Func generate(ch chan int) { for i := 2; ; i++ { ch <- i // Send 'i' to channel 'ch'. }

5
Filter Function func filter(in, out chan int, prime int) { for { i := <-in; // Receive value of new variable 'i' from 'in'. if i % prime != 0 { out <- i // Send 'i' to channel 'out'. }

6
Sieve Program func main() { ch := make(chan int); // Create a new channel. go generate(ch); // Start generate() as a goroutine. for { prime := <-ch; fmt.Println(prime); ch1 := make(chan int); go filter(ch, ch1, prime); ch = ch1 } }

Similar presentations

OK

Paper written by Flavio Oquendo Presented by Ernesto Medina.

Paper written by Flavio Oquendo Presented by Ernesto Medina.

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google