fibの例題

http://golang.org/に載ったいた例題動いた。

package main

// fib returns a function that returns
// successive Fibonacci numbers.
func fib() (func() int) {
	a, b := 0, 1;
	return func() int {
		a, b = b, a+b;
		return b;
	}
}

func main() {
	f := fib();
	// Function calls are evaluated left-to-right.
	println(f(), f(), f(), f(), f());
}

// 実行結果
1 2 3 5 8

セミコロンとカッコが必要だったらしい。それにしても、エラーメッセージはSyntax Errorばかり出て不親切すぎる。