2010-09-01から1ヶ月間の記事一覧

“斜め方向から fib を高速化する方法”を JavaScript で

SpiderMonkey がタコなのか、はたまた私の JavaScript力がたんに足りないだけなのか、いずれにしてもかなりひどいことになってしまっていますが、JavaScript で許されている範囲で件の Squeak Smalltalk ならではの「斜め」を実現しようとすると、こんなふう…

“最も簡単に fib を高速化する方法”を Squeak Smalltalk で

二つ値を返せば良いんですよ。メモ化なんてしなくていい。def fib_i(n) if n == 1 [1, 1] else x1, x0 = fib_i(n-1) [x1 + x0, x1] end enddef fib(n) fib_i(n)[0] end 最も簡単に fib を高速化する方法 - ドレッシングのような Squeak Smalltalk でも試して…

斜め方向から fib を高速化する方法

id:sumim:20100910:p1 に絡めて、せっかくなら Smalltalk ならではの変わった方法もひとつ…とひねり出してみたのがこちら。 Integer >> fib | temp1 temp2 mine me sender | temp1 := 0. temp2 := 1. self > 1 ifTrue: [(self - 1) fib]. mine := temp1 + te…

Ruby版 Classbox に Local Rebinding機構が欠けていることによって生じる、本家との挙動の違い

id:sumim:20100829:p1 の続き。classbox.diff を当てた trunk のビルドができたので、本家の Classbox のテストコードの振る舞いを、Ruby版に書き直した結果と比べてみました。両者の挙動の違いには、おそらく、発表に対する質問にも出ていた local rebindin…