ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 람다 λ lambda
    Swift 2020. 8. 4. 20:59
    728x90
    공부하며 정리하는 블로그로 잘못된 내용이 다소 포함될 수 있습니다.
    감안하여 봐주시고 문제가 있다면 댓글로 알려주시면 감사하겠습니다!!

    람다가 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

    댓글

Designed by Tistory.