1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 15:18:01 +00:00
Files
til/reason/making-things-mutable.md
2018-07-18 22:42:22 -05:00

988 B

Making Things Mutable

In ReasonML, things that we create with let are immutable -- which means that we can't change them.

let num = 5;

Once num is bound to 5 it is stuck with that value for the duration of it's scope.

ReasonML doesn't completely restrict us to immutability though. The ref construct allows us to bind a variable to a sort of box that holds a value. We can then look in the box and change what is in the box.

let num = ref(5); /* put 5 in the box */

Js.log(num^); /* use `^` to look in the box */

num := 3; /* remove 5, put 3 in the box */

We use ref to bind our variable to a box with some initial value. The := assignment operator allows us to change what's in the box. Anytime we want to refer to what's in the box, we postfix our variable with ^.

Also of note: while list instances are not mutable, array instances are.

source