groovy

루비, 그루비, 클로저, 람다

박제권
www.slideshare.net/aalmiray/jfokus-functional-groovy에 나온 깔끔한 그루비 코드를 보고 루비로도 가능한지 궁금해졌습니다. 클로저는 아주 유용한 녀석입니다. 대체로 따로 선언해서 사용하기 보다는 루프나 함수호출에 인자로 전달하는 경우가 많고, 그래서 관련 문법을 잘 모르고 지나쳤었는데, 덕분에 한번 뒤져보았습니다. 첫번째 코드는 그루비의 클로저. def dub = {int base, int factor -> base * factor } assert 4 == dub(2,2) assert 4 == dub.call(2,2) 이걸 루비로 고쳐보면 다음과 같습니다. a = lambda{|base,factor| base*factor} puts a.call(2,3) puts a.