Challenge 2: Splat Args — Solution def average(*numbers) return 0 if numbers.empty? numbers.sum / numbers.length.to_f end puts average(4, 8, 15, 16, 23, 42) puts average(10, 20) puts average =begin Output: 18.0 15.0 0 Notes: - *numbers collects every positional argument into a single Array, so average(4, 8, 15, 16, 23, 42) receives numbers as [4, 8, 15, 16, 23, 42]. - return 0 if numbers.empty? is the modifier-if early-exit pattern from Chapter 3, guarding against division by zero. - numbers.length.to_f forces float division deliberately (Chapter 2's integer-division gotcha) — without .to_f, an average like 18/6 would truncate to an integer instead of showing decimal precision when it's present. =end