def foo(n)
n ** n
end
foo = Proc.new { |n|
n * 4
}
puts foo[2] * 2
この答えは 16
になる。
Procを呼び出すときには、[]もしくは.callで呼び出すことができるらしい。
そのため、この問題ではputs foo[2] * 2
としているため、
foo = Proc.new { |n|
n * 4
}
この処理が走るということらしい。
ちなみに、puts foo 2 * 2
であれば、
def foo(n)
n ** n
end
この処理が走ることになるらしい。
あっているかわからないので、詳しい方コメントいただけたら嬉しいです。