New to coding and have gone through some of the more commonly used methods in Ruby, monkey patching them to gain a better understanding of how each works (which btw has helped a massive amount). 

Now I'm again doing the same, but for ones that I previously iterated through, I am using recursion. My question is:

I am creating my own `#inject` method for the `Array` class, and I want to write this recursively. The method would allow an optional accumulator to be passed, as well as a proc. How would this be done using the following format?

```
class Array
  def my_inject(accum = nil, &prc)
    #code
  end 
end

```

Also, do I need to worry about mutating the original array, should I use `#dup`? Thanks for your help in advance!