소개
Python 에서 함수는 일급 객체 (first-class object) 입니다. 이는 함수가 다른 값처럼 전달될 수 있음을 의미합니다. 이의 유용한 응용 중 하나는 어떤 조건에 따라 값을 기반으로 함수를 조건부로 적용하는 것입니다. 이 챌린지에서는 술어 함수 (predicate function) 와 술어가 참일 때 적용할 함수를 인수로 받아, 술어가 참일 때 함수를 적용하는 새로운 함수를 반환하는 함수를 작성해야 합니다.
Python 에서 함수는 일급 객체 (first-class object) 입니다. 이는 함수가 다른 값처럼 전달될 수 있음을 의미합니다. 이의 유용한 응용 중 하나는 어떤 조건에 따라 값을 기반으로 함수를 조건부로 적용하는 것입니다. 이 챌린지에서는 술어 함수 (predicate function) 와 술어가 참일 때 적용할 함수를 인수로 받아, 술어가 참일 때 함수를 적용하는 새로운 함수를 반환하는 함수를 작성해야 합니다.
when이라는 함수를 작성하세요. 이 함수는 두 개의 인수를 받습니다: 술어 함수 predicate와 적용할 함수 when_true. when 함수는 단일 인수 x를 받는 새로운 함수를 반환해야 합니다. 새로운 함수는 predicate(x)의 값이 True인지 확인해야 합니다. 만약 그렇다면, 새로운 함수는 when_true(x)를 호출하고 그 결과를 반환해야 합니다. 그렇지 않으면, 새로운 함수는 x를 반환해야 합니다.
def when(predicate, when_true):
return lambda x: when_true(x) if predicate(x) else x
double_even_numbers = when(lambda x: x % 2 == 0, lambda x : x * 2)
double_even_numbers(2) ## 4
double_even_numbers(1) ## 1
이 챌린지에서는 어떤 술어 (predicate) 를 기반으로 값을 조건부로 함수에 적용하는 함수를 작성했습니다. 이는 더 유연하고 재사용 가능한 코드를 만드는 데 유용한 기술입니다.