별개로 호출될 수 있는 curry 함수 만들기
안전성 있는 curry? 좀 더 쓰기 편한 curry def curry(func) : curry.__func_name__ = func.__name__ f_args, f_kwargs = [], {} def f(*args, **kwargs) : nonlocal f_args, f_kwargs if args or kwargs : print("args", args, "kwargs", kwargs) f_args += args f_kwargs.update(kwargs) if len(f_args) + len(f_kwargs) >= func.__code__.co_argcount : result = func( *f_args, **f_kwargs) f_args, f_kwargs = [], {} return result re..
2021. 7. 20.
reduce, 원하는 함수로 배열 혹은 값을 누적처리하여 결과값을 구해보자
reduce 어찌보면 좀 생소한 개념일 것이다. 일단 예를 들어서 한번 파악해보자 from functools import reduce def add(x ,y) : print ( "x : ", x, " y : ", y) return x + y reduce(add, [0, 1, 2, 3, 4]) 일단 위는 reduce의 예제이다. reduce에는 두 가지 혹은 세 가지의 매개변수가 들어간다. 일단 처음 변수는 함수이다. 위를 보면 add 함수를 사용한 것을 볼 수 있는데 이 함수는 배열의 요소값을 순차적으로 돌며 계산하고 싶은 함수를 뜻한다. 다음은 배열이다. 배열은 계산하고 싶은 값들의 모음이다. 결과를 보면 x : 0 y : 1 x : 1 y : 2 x : 3 y : 3 x : 6 y : 4 10 좀 더..
2021. 7. 17.
python curry update
이전에 작성했던 python curry 문이다. def curry(func) : curry.__func_name__ = func.__name__ f_args, f_kwargs = [], {} def f(*args, **kwargs) : nonlocal f_args, f_kwargs if args or kwargs : print("args", args, "kwargs", kwargs) f_args += args f_kwargs.update(kwargs) return f else : print( f_args, f_kwargs) result = func( *f_args, **f_kwargs) f_args, f_kwargs = [], {} return result return f def add (a, b) : ..
2021. 7. 16.