1 comment

[ 3.2 ms ] story [ 10.4 ms ] thread
Example:

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