negate

전달한 술어를 논리적으로 뒤집은 술어를 반환합니다.

bool Function(T) negate<T>(bool Function(T) f)

강의

negate(f)는 임의의 x에 대해 !f(x)를 반환하는 새 술어를 돌려줍니다. 이미 이름이 붙은 술어가 있고(isEven, isEmpty, matches(pattern)의 결과 등) 그 반대를 함수 값으로 쓰고 싶을 때 가장 유용합니다 — filter, reject를 비롯해 술어를 요구하는 어디에든, 로직을 다시 정의하지 않고 넘길 수 있습니다.

not과 혼동하지 마세요. notbool 값 하나를 뒤집고, negate술어 함수 자체를 뒤집습니다. 대략 negate(f)(x) => not(f(x))인 셈입니다.

데모 1 · 기본

데모 2 · 라이브러리 술어 뒤집기

negate는 라이브러리에 이미 있는 어떤 술어와도 조합됩니다. 값 기반 술어인 isEmpty가 그 예입니다.

직접 해 보기

연습: negate(isVowel)로 자음만 남겨 보세요.

관련 항목: not — 불리언 값 하나를 뒤집기 · filter / reject — 뒤집은 술어가 주로 쓰이는 자리 · isEmpty — negate와 조합하기 좋은 값 기반 술어 · when — 술어가 참일 때만 콜백 적용하기