Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Copying fields in OCaml

I have a very basic question regarding OCaml records. Suppose I have a record defined:

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

Now, suppose I want to create a new record which has all fields equal to x but which has c=4. I could write:

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

but this is annoying because there's not need to re-write a=3 and b=8. I could also write:

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

but this is still not good if the record has many fields. Is there any way of writing something like:

let y = {x with c=4}

or something of the sort?

like image 687
Surikator Avatar asked Oct 26 '10 17:10

Surikator


1 Answers

yeah, and that's the exact syntax.

let y = {x with c=4}
like image 92
nlucaroni Avatar answered Nov 16 '22 23:11

nlucaroni