Skip to main content

Posts

Showing posts from November, 2013

Closure와 lambda 설명

ㅇ Closure lambda 차이 - lambda : 익명 함수 - Closure : 자신의 정의된 영역의 변수를 에워싸고(close over) 있는 것. 또는, 자신이 정의된 영역의 변수에 접근할 수 있는 것. Closure를 사용하기 위해서 lambda(익명함수)가 사용됨 ㅇ Closure설명 https://docs.google.com/viewer?a=v&pid=forums&srcid=MTg0MjU3MDM2ODU0NjA0MzI4MzgBMTU5MDc0MTU3NDM3MzU5MTIwMjEBUUI4NE5VVjlFLVVKATQBAXYy lambda는 람다 표현식 또는 람다 함수, 그리고 이름 없는 함수(anonymous function)라고 불리우며, 그 성질은 "함수 객체(functor)와 동일하다" 할 수 있다. // Iterative version List<Sale> salesOfAHyundai = new ArrayList<Sale>(); for (Sale sale : sales) {  if (sale.getCar().getBrand().equals("Hyundai")) {  salesOfAHyundai.add(sale);  } } // Functional version  => lambda 표현식 val salesOfHyundai = db.sales.filter(_.car.brand == "Hyundai") ㅇ javascript Closure설명 => lambda : 익명함수 function exampleClosureForm(arg1, arg2){     var localVar = 8;     function exampleReturned(innerArg){         return ((arg1 + arg2)/(innerArg + localVar));     }     /* return