2016-02-01から1ヶ月間の記事一覧

Ruby でメタプログラミング的にフィボナッチ数列を求める

Ruby でフィボナッチ数列を求めるメタプログラミングを書いてみた。 class Fib def call n __send__ "_#{n}" end def method_missing name, *args n = name[/_(\d+)/, 1].to_i if n > 1 n = call(n - 2) + call(n - 1) end define_singleton_method(name) { …

Ruby で refinements で mixin したメソッドから別のメソッドを呼び出す

さて、Ruby では refinements 内で mixin したメソッド内から同モジュールのメソッドを呼び出すことはできません。 module Homu def homu p "homu" end def mami homu end end module ObjectEx refine Object do include Homu end end using ObjectEx obj = …