アカウント名:
パスワード:
古代の昔から、処理系が持つ標準の関数が遅いのでテーブル使うなり自分で関数を置き換えるなりするなどして高速化するのは当たり前だったし、今回はたまたまオープンソースだったからそれを指摘しただけだよね?マクロを外に出すとかも古代からあるテクニックだし、所詮埋もれてた問題にたまたま気づいただけとしか思えない。というか、ver upの際に低速化したのなら、明らかにその部分を担当した人間のミスでしょう。
Rubyを63%高速化って言っても、特定の用途の処理を行う際に高速化されただけで、これによる恩恵を受けるユーザはそれほど多くないように思う。これくらいのことはOSS界では日常茶飯事だし、職場でも毎日のように遭遇することなんだけど、記事にするほど珍しいことなの?
#そもそもフィボナッチ数列って業務的にはほとんど使わないよね
ホントにフィボナッチ数列が欲しけりゃ、人間がやっている手順そのままにやったほうが、一億倍マシです。
つまり再帰で書けということか。
(define (fib n) (cond ((= n 1) 1) ((= n 2) 1) (else (let fib-iter ((k 3) (fk-1 1) (fk 2)) (if (= n k)
> Ruby関係のblogを読むと、なぜかフィボナッチ数列を出力するコードを書く人が多いように思います。> Lispや関数型言語も多いですね。> JavaやC++関係では、ほとんど見たことが無いのですけど。
再帰を学ぶ例としてちょうどいいというだけでは?C++では、コンパイルするとフィボナッチ数列が得られるコードならたまに見かけます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
いたって普通じゃないの? (スコア:0)
古代の昔から、処理系が持つ標準の関数が遅いのでテーブル使うなり自分で関数を置き換えるなりする
などして高速化するのは当たり前だったし、今回はたまたまオープンソースだったからそれを指摘
しただけだよね?
マクロを外に出すとかも古代からあるテクニックだし、所詮埋もれてた問題にたまたま気づいただけ
としか思えない。というか、ver upの際に低速化したのなら、明らかにその部分を担当した人間の
ミスでしょう。
Rubyを63%高速化って言っても、特定の用途の処理を行う際に高速化されただけで、これによる恩恵を
受けるユーザはそれほど多くないように思う。
これくらいのことはOSS界では日常茶飯事だし、職場でも毎日のように遭遇することなんだけど、
記事にするほど珍しいことなの?
#そもそもフィボナッチ数列って業務的にはほとんど使わないよね
Re:いたって普通じゃないの? (スコア:1, 参考になる)
Lispや関数型言語も多いですね。
JavaやC++関係では、ほとんど見たことが無いのですけど。
つまり、あなたや私が知らないだけで、この世の中にはフィボナッチ数列を日常的に必要としている人が結構いるということではないでしょうか?
フィボナッチ数列(Re:いたって普通じゃないの?) (スコア:1)
>必要としている人が結構いるということではないでしょうか?
世の中に出回っている、”fib.rb" とかのコードは再帰関数呼び出しの
ベンチマーク・デモ用です。いわば、わざと非効率なことでコンピュータを
いじめてるようなもんです。
ホントにフィボナッチ数列が欲しけりゃ、人間がやっている手順そのままに
やったほうが、一億倍マシです。
ま、それが判るようになるのもアルゴリズムの勉強の一環なんですがね。
Re: (スコア:0)
つまり再帰で書けということか。
Re: (スコア:0)
> Ruby関係のblogを読むと、なぜかフィボナッチ数列を出力するコードを書く人が多いように思います。
> Lispや関数型言語も多いですね。
> JavaやC++関係では、ほとんど見たことが無いのですけど。
再帰を学ぶ例としてちょうどいいというだけでは?
C++では、コンパイルするとフィボナッチ数列が得られるコードならたまに見かけます。