I'm starting learning Ocaml, using hickey book, and I'm stuck on Exercise 3.4, part 9
let x x = x + 1 in x 2
The result of the operation is 3
, but I don't understand why?
When you write let x x = ...
you are defining a function called x
which binds the name x
to its argument.
Since you used let
instead of let rec
, the function doesn't know its own name, so as far as it knows, the only x
worth knowing about is the one passed in as an argument.
Therefore when you call the function with x 2
, it binds the value 2
to the name x
and evaluates x+1
, getting 3
as the result.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With