2009-11-01から1ヶ月間の記事一覧

Go はレキシカルなクロージャもいける。

package main import "fmt"; func main() { count := 0; counter := func() int { count++; return count; }; repeat10(counter); } func repeat10(f func() int) { for i := 0; i < 10; i++ { fmt.Println(f()); } } 実行すると。 1 2 3 4 5 6 7 8 9 10

Google Go で ping pong

Google の Go で Erlang の 3.2 Message Passing にある ping pong を作ってみた。 package main import "fmt"; func main() { pongCh := make(chan string); pingCh := ping(3, pongCh); quit := pong(pongCh, pingCh); <-quit; } func ping(count int, pon…