インスタンス特異的メソッドを使ったフィボナッチ数列


id:rubyco:20060419:fib のコメント欄にある mobius さんによる、Ruby の特異メソッドを用いたコードが面白かったので、例によって意訳。

| fibonacci |

fibonacci := #(1 1).
fibonacci assureUniClass.  " インスタンス特異的クラスの作成 "

fibonacci class compile: 'at: index
   ^ [super at: index]
      ifError: [(self at: index - 2) + (self at: index - 1)]' classified: 'accessing'.

^ fibonacci at: 20