자바 버전
public static double average (double[] numbers){ double sum = 0; for( int i = 0; i < numbers.length; i++){ sum+=numbers[i]; } return sum / numbers.lenth; }
루비 버전
def average (numbers) numbers.inject(:+) / numbers.length end
파이썬 버전
def average (numbers) return sum(numbers) / len(numbers)
클로저
(defn average [numbers] (/ (apply + numbers) (count numbers)))
여기서 apply는 컬렉션들의 아규먼트를 꺼내는 역할을 한다. (apply + numbers ) => numbers[0] + numbers[1] + numbers[2] ...) ex) (apply + [a b c]) = (+ a b c)