저는 아주 초보자 인 OCaml 프로그래머입니다. 그래서 이것이 어리석은/명백한 질문이라면 저를 용서해주십시오. 이 많아서을 흡수 할 수 있으며 문서에서이 부분을 놓쳤을 수 있습니다.OCaml의 필드 업데이트를 일반화 할 수 있습니까?
let update_scalar p scalar value =
add_delta p;
magic_reflection (p, scalar) <- value;
refresh p
이 : 나는 이런 식으로 뭔가를 작성하는을 원하는 때문에
let update_x p x =
add_delta p;
p.x <- x;
refresh p
let update_y p y =
add_delta p;
p.y <- y;
refresh p
let update_z p z =
add_delta p;
p.z <- z;
refresh p
이 중복 버그 나를 시작 :
나는 다음과 같이 시작있어 코드의 기초가 x를 업데이트 할 때 간단하게 전화 할 수 있습니다.
update_scalar p 'x' value
이것은 "매크로"를 호출합니다. OCaml은 매크로 시스템을 가지고 있다고 생각하지 않습니다. 그 밖의 무엇을 할 수 있습니까?
NIT :
과 함께 생성 된 코드를 참조 식별자로'val'을 chosing name은 혼란스럽고, val은 모듈 타입에서 바인딩으로 사용된다. – Yttrill
충분합니다. 그것을 바꿨습니다. –