I have a function that return [[]]
, and I want to test the result as unit test.
But I found that the expression [[]] == [[]]
return false
.
Here a simple test code:
# [[]] == [[]];;
- : bool = false
Can someone explain me why this expression is evaluated as false?
Thanks.
Use =
since you have structural equality for comparing two values:
# [[]] = [[]];;
- : bool = true
Because ==
is reference equality, it only returns true if you refer to the same memory location:
let a = [[]]
let b = a
# b == a;;
- : bool = true
The ==
operator in OCaml means "physical equality". However, you have two (physically) different lists. Probably, you want "structural equality", which is tested by =
.
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