Source

euler / go / src / euler / 2.go

Full commit
/*
Each new term in the Fibonacci sequence is generated by adding the previous two
terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

By considering the terms in the Fibonacci sequence whose values do not exceed
four million, find the sum of the even-valued terms.

Answer: 4613732
*/
package main

import "fmt"

func fibs() chan int {
	results := make(chan int)
	go func() {
		var a, b = 1, 1
		for {
			results <- a
			a, b = b, a+b
		}
	}()

	return results
}

func e2() {
	sum := 0
	for i := range fibs() {
		if i >= 4000000 {
			break
		}
		if i%2 == 0 {
			sum += i
		}
	}

	fmt.Println(sum)
}

func init() {
    register("2", e2)
}