Erlang の Record を更新する

gen_server::handle_call の State を構造体で表現しているとして

-record(state, {key, value, left, right}).

value だけ更新して、reply したい場合がある。今までは

{state, State#state.key, myValue2, State#state.left, State#state.right}

としてたんだけど

State#state{value=myValue2}

という方法をマニュアルで発見。プログラミング Erlangにも書いてあった。