Копирование полей в OCaml

У меня очень простой вопрос относительно записей OCaml. Предположим, у меня есть определенная запись:

type r = {a:int;b:int;c:int}
let x = {a=3;b=8;c=2}

Теперь предположим, что я хочу создать новую запись, в которой все поля равны x, но c = 4. Я мог бы написать:

let y = {a=3;b=8;c=4}

, но это раздражает, потому что нет необходимости переписывать a = 3 и b = 8. Я мог бы также написать:

let y = {a=x.a;b=x.b;c=4}

, но это все равно нехорошо, если в записи много полей. Есть ли способ написать что-то вроде:

let y = {x with c=4}

или что-то в этом роде?

Большое спасибо за любую помощь.

Всего наилучшего, Сурикатор.

7
задан nlucaroni 26 October 2010 в 17:06
поделиться