내장 reducer 모음. ElGraph.state/3의 :reducer 옵션에 MFA로 지정한다.
ElGraph.state(graph, :messages, default: [], reducer: {ElGraph.Reducers, :append, []})reducer 시그니처는 (현재값, 새값) -> 병합값.
Summary
Functions
숫자를 누적 합산한다.
리스트에 새 값(들)을 뒤에 추가한다. 새 값이 리스트가 아니면 단일 원소로 감싼다.
append 후 최근 keep_last개만 유지한다 — 컨텍스트 압축 1단계 (SPEC §3.1).
맵을 병합한다. 키 충돌 시 새 값이 이긴다.
Functions
숫자를 누적 합산한다.
리스트에 새 값(들)을 뒤에 추가한다. 새 값이 리스트가 아니면 단일 원소로 감싼다.
{:replace, list} 마커는 추가 대신 채널을 통째로 치환한다 — 컨텍스트 압축
(ElGraph.Nodes.Summarize)이 오래된 메시지를 줄일 때 쓴다.
@spec append_trim(list(), term(), pos_integer()) :: list()
append 후 최근 keep_last개만 유지한다 — 컨텍스트 압축 1단계 (SPEC §3.1).
ElGraph.state(graph, :messages, default: [], reducer: {ElGraph.Reducers, :append_trim, [100]})
맵을 병합한다. 키 충돌 시 새 값이 이긴다.