An experimental 'LINQ to Objects' in Go
oki-osk.jp
oki-osk.jp
package main
import ( "fmt"; . "linq" )
var Fibonacci Enumerate = func(yield Operate) error { a := 0; b := 1; for { err := yield(a); if err != nil { return err }; a, b = b, a+b } }
func main() { twentyFibs := Fibonacci.Take(20); twentyFibs(func(e Any) error { fmt.Printf(" %v", e); return nil }); fmt.Println() }
Output: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181