-
람다 λ lambdaSwift 2020. 8. 4. 20:59728x90
공부하며 정리하는 블로그로 잘못된 내용이 다소 포함될 수 있습니다.
감안하여 봐주시고 문제가 있다면 댓글로 알려주시면 감사하겠습니다!!람다가 Swift 카테고리가 맞는지는 조금 의문이지만.. 클로저에 대해 이해하기 전에 람다를 간략하게 살펴보고 가면 좋겠다 싶어서 글을 쓰게 되었습니다 :) 아주 빠르고 간단하게만 살펴보고 가겠습니다.
람다, 즉 람다 대수는 수학자 알론조 처치에 의해 수학기초론 연구의 일환으로 1930년대 소개되었다고 합니다. 자세한 역사는 위키가 더 좋을듯 하구요.
람다는 처음에 논리적 모순을 보이기 위해 사용되었다고 합니다. 함수에 굳이 이름이 있을 필요 없다는 점에 착안해서 표현을 축약시켜 놓은 형태로 볼 수 있습니다. 프로그래밍에서 람다는 주로 익명 함수를 나타내기 위해 사용되는 표현법입니다.
학창시절 많이 봤던 함수 표현을 먼저 생각해볼까요?
입력이 들어오면 그걸 그대로 내보내는 항등함수 I(x), 2개의 입력을 받아 제곱합을 내보내는 f(x,y) 가 있다고 생각해봅시다.i(x) = x f(x) = x*x + y*y
여기에 굳이 함수의 이름을 안 쓰고 이런식으로도 표현해볼 수 있겠죠
x -> x (x,y) -> x*x + y*y
지금은 x, y를 동시에 인자로 받고 있지만 형태를 조금만 바꾸면 차례대로 받을 수도 있겠죠. 그러면 이런 식으로도 바꿔볼 수 있습니다.
x -> (y -> x*x + y*y)
완벽하게 정리됐다고 볼 수는 없지만 느낌적인 느낌을 느끼시겠나요?
이런 식으로 함수를 축약시켜 나가는게 람다식, 익명 함수의 느낌이구나를 잡고 가시면 좋을 것 같습니다.함수형 프로그래밍이 이 람다식을 기반으로 하고 현대 언어들은 이런 식의 형태를 많이 띄고 있다고 합니다 :)
오늘은 정말 간단하게만 알아봤고 클로저를 공부하면서 자세하게 다뤄보도록 하겠습니다.
감사합니다!'Swift' 카테고리의 다른 글
defer (0) 2020.09.21 순수함수 Pure function (0) 2020.08.04 Reduce (0) 2020.08.04 ~= 연산자 in Swift (0) 2020.07.07 Hashable in Swift 5 (0) 2020.06.25