add

같은 타입의 두 값을 더합니다. 여기저기 넘겨 쓸 수 있는 함수 형태입니다.

T add<T extends Object>(T a, T b) => (a as dynamic) + b as T;

강의

add(a, b)+를 함수 값으로 감싼 것입니다. +로 동적 디스패치하기 때문에 이 연산자를 지원하는 것이라면 무엇이든 동작합니다 — num, String 연결, 심지어 List 연결까지 — 숫자와 문자열을 모두 받는 FxTS의 add와 같은 동작입니다.

진가는 인라인 (a, b) => a + b 대신 이항 (T, T) -> T 함수를 요구하는 API에서 드러납니다 — 가장 자연스러운 자리는 reduce/fold의 결합 함수입니다. 다만 이항 함수이므로 단항 map 콜백으로 쓰려면(모든 원소에 고정값을 더하는 경우) 한쪽을 직접 클로저로 묶어 주면 됩니다: (b) => add(n, b).

데모 1 · 기본

데모 2 · 리듀서로, 그리고 map용으로 클로저에 묶어서

직접 해 보기

연습: foldadd를 사용해 모든 조각을 하나의 문자열로 이어 붙여 보세요.

관련 항목: reduce / fold — add를 결합 함수로 쓰는 대표적인 자리 · sum — Iterable<num>을 위해 이미 준비된 합계 함수 · gt · gte · lt · lte — add에 대응하는 비교 함수들 · apply — 동적 인자 목록으로 임의의 함수를 호출