Concatenate two arrays

Hello again ruby community!

I just learned how to add two arrays(I know, i know).

My program looked like this

array1=[1,2,3] array2=[4,5,6] array_sum=array1+array2

I thought pretty simple stuff, they are combined. However, now i am looking to define that code as a method and I do not understand how to create the correct number of arguments, so when the method is called back it gives me my array_sum.

I have been trying many different variations, but it has now come down to I am not sure if my defining is wrong or my code in the method is incorrect.

I want to say it is something such as

def please_work() array1=[1,2,3] array2=[4,5,6] array_sum=array1+array2 end puts please_work(array_sum)

i ended up fiddling around and getting it to output [1,2,3,4,5,6], but my syntex said i did not have the correct number of arguments. Also, sometimes i get array_sum is not a defined variable. If I am defining it in the method, shouldn't it be defined if i call the method again?

thanks taking a look at my question alex

def array_sum(array1 = , array2 = ) array1 + array2 end

array_sum([1,2,3], [4,5,6])

=> [1, 2, 3, 4, 5, 6]

def array_sum(array1 = , array2 = )   array1 + array2 end

array_sum([1,2,3], [4,5,6]) => [1, 2, 3, 4, 5, 6]

Also I suggest the OP works through a good Ruby primer.

Colin

Colin is right. You should try reading a book, like this one: http://pragprog.com/book/ruby4/programming-ruby-1-9-2-0

Dheeraj Kumar wrote in post #1119998:

Colin is right. You should try reading a book, like this one: Search

-- Dheeraj Kumar

Hi Colin and Dheeraj,

First off thanks for your help. It is actually quite funny, I ordered that exact book a few days ago :). I also worked through Chris Pine's book, which was very nice. I always think i get the ideas, practice the items that they show, but when it comes to solving problems I freeze up. Guess it will come with a ton more practice and reading.

thanks for taking the time to help

Alex

Dheeraj Kumar wrote in post #1119995:

def array_sum(array1 = , array2 = )   array1 + array2 end

array_sum([1,2,3], [4,5,6]) => [1, 2, 3, 4, 5, 6]

-- Dheeraj Kumar

Is there a reason why when i would run a test it would say -1 arguments instead of 2? You had listed two (array1 = , array2= ), I have never actually gotten - arguments before with the spec test.

thanks!

Could you paste your test?

Dheeraj Kumar wrote in post #1120004:

Could you paste your test?

-- Dheeraj Kumar

The code for the number of arguments and the part which is failing is

  it "requires two arguments" do     method(:array_sum).arity.should eq 2   end

Thanks Dheeraj. Quick question about the pick axe book. Have you given a version a read back in the day? I am just wondering how beginner friendly it is.

The arity should be -1, not 2. See the docs here: http://www.ruby-doc.org/core-1.9.3/Method.html#method-i-arity

I read the pickaxe book about three years ago, when I first started with Ruby 1.9.2. It was quite beginner friendly, and very useful. I haven’t read more recent editions.

The code for the number of arguments and the part which is failing is

it “requires two arguments” do

method(:array_sum).arity.should eq 2

end

Dheeraj’s code has optional arguments. In such circumstances arity will return a negative number (where -1 means that the method requires at least 0 arguments, -1 would mean a method that requires at least 1 argument etc…

Thanks Dheeraj. Quick question about the pick axe book. Have you given a version a read back in the day? I am just wondering how beginner friendly it is.

It was the first book on ruby I ever read

Fred

Frederick Cheung wrote in post #1120015: