Your documentation says that they are, but arguments are not memoized:
The script:
class Foo
def bar(a)
return a
end
memoize :bar
end
f = Foo.new
puts f.bar(1)
puts f.bar(2)
Outputs:
You need to keep a hash ivar that takes the array of args as a key, and calculated results as values.