juxt
리스트에 담긴 모든 함수를 같은 값에 적용하고 그 결과를 모읍니다.
List<R> Function(T a) juxt<T, R>(List<R Function(T a)> fns)
강의
같은 입력을 받는 함수들의 리스트를 juxt에 넘기면, 그 입력을
모든 함수에 통과시켜 결과를 순서대로 담은 List를 반환하는
함수 하나를 돌려줍니다. 같은 코드를 반복하지 않고도 값 하나에서
서로 독립적인 여러 관점을 뽑아내는 간결한 방법입니다.
FxTS의 juxt는 가변 인자를 받고 인자 개수가 서로 다른 함수도
받을 수 있습니다. Dart에는 가변 제네릭이 없어서 FxDart 버전은 항목마다
단항 함수 T -> R 하나씩만 받습니다 — 그래도 "이 값 하나에
읽기 전용 투영 N개를 돌린다"는 흔한 경우를 감당하기에는 충분합니다.
데모 1 · 기본
dartdoc에 나오는 전형적인 예제입니다. 리스트의 최솟값과 최댓값을 한 번에 계산합니다:
데모 2 · 여러 필드 투영하기
레코드 같은 Map에서 여러 필드를 한꺼번에 꺼냅니다:
직접 해 보기
연습: juxt로 이 리스트의 sum과
average를 한 번에 계산해 보세요.