[python] ๋žŒ๋‹ค ํ•จ์ˆ˜ lambda function

    ๋ฐ˜์‘ํ˜•

    ๐Ÿ’ก ๋žŒ๋‹ค ํ•จ์ˆ˜ lambda function

    ๋žŒ๋‹คlambda ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์ด๋ฆ„ ์—†์ด, ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ต๋ช…์˜ ํ•จ์ˆ˜์ด๋‹ค. ์ฆ‰, ์ด๋ฆ„์„ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

     

    >>> f = lambda x, y : x + y
    >>> f(1, 4)
    5

    ์ด๋ ‡๊ฒŒ ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด def๋‚˜ return์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    lamda ๋’ค์—๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ, ' : ' ๋’ค์—๋Š” ๋ฐ˜ํ™˜ํ•  ๊ฐ’์„ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

     

    >>> (lambda x : x+1) (5)
    6

    lambda ํ•จ์ˆ˜์— ๋ฐ”๋กœ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

     

    ๐Ÿ’ก ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

    ๋žŒ๋‹ค ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์œ ์šฉํ•  ๋•Œ๋Š” ๋˜๋‹ค๋ฅธ ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ต๋ช…์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์ด๋‹ค. (The power of lambda is better shown when you use them as an anonymous function inside another function.)

     

    def myfunc(n):
      return lambda a : a * n
    
    mydoubler = myfunc(2)
    mytripler = myfunc(3)
    
    print(mydoubler(11))
    print(mytripler(11))

    ์ด๋ ‡๊ฒŒ lamdaํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋˜๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ฉด, ๋งŒ๋“  ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์ด์ง€๋งŒ, ๋žŒ๋‹คํ•จ์ˆ˜์— ๋„˜๊ฒจ์ฃผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ฅผ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ๋”๋ณด๊ธฐ
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€