Go Exercise:Fibonacci closure
どのプログラミング言語でもループ処理の練習問題として見るのがフィボナッチ数列。これまでにJavaScriptとpythonで書いたことあります。Goで書いて見ましょう。ほんで関数クロージャーとか使ってみましょう。第1級オブジェクトとかよくわかりません。Let's Go!!
package main
import (
"fmt"
)
func fibonacci() func() int {
three := 0
two := 0
one := 1
return func() int {
three = two
two = one
one = two + three
return three
}
}
func main() {
f := fibonacci()
for i := 1; i < 10; i++ {
fmt.Println(f())
}
}
なんかもっとスマートに書けただろって感じですね。変数とか。ただフィボナッチ数列の定義式は3項なのでやはり変数3つは必要かな?とも思ったり。何にせよ芸がなかった。
この記事が気に入ったらサポートをしてみませんか?