Challenge 1: puts vs print vs p — Solution name = "Philip" numbers = [1, 2, 3] puts name # puts adds a trailing newline: Philip print name # print has no trailing newline: Philip (next output runs into it) p name # p shows the inspect form, quotes included: "Philip" puts numbers # puts on an array prints each element on its own line: 1 / 2 / 3 print numbers # print on an array prints Ruby's literal form with no newline: [1, 2, 3] p numbers # p shows the array exactly as written: [1, 2, 3] =begin Output: Philip Philip"Philip" 1 2 3 [1, 2, 3][1, 2, 3] Notes: - puts is for "show a human something readable" — it adds the newline for you, and unpacks arrays one element per line. - print is the same as puts but never adds a newline, which is why the next line of output runs straight into it (visible above where "Philip" and "Philip" collide, followed immediately by p's quoted output). - p is for debugging: it shows the exact literal/inspect form of the value, including quotes around strings and brackets around arrays, so you can see the real shape of the data rather than a human-friendly rendering. =end