My questions: 1. What does $:((1,2,3)) mean? Can we think $ and : as opposite operators which cancel each other, so that $:((1,2,3)) is exactly same as the original tuple (1,2,3)? 2. Why ex1 == ex2, but not ex1 === ex2? Thanks!!
julia> ex1 = :(a in $:((1,2,3)) )
:(a in (1,2,3))
julia> ex2 = :(a in (1,2,3) )
:(a in (1,2,3))
julia> ex1 == ex2
true
julia> ex1 === ex2
false
In some cases, a nice alternative to being surprised is reading the documentation:
help?> is
search: ind2sub @ip_str include_string @int128_str is isa issym isqrt isodd isnan
is(x, y) -> Bool
===(x,y) -> Bool
≡(x,y) -> Bool
Determine whether x and y are identical, in the sense that no program could
distinguish them. Compares mutable objects by address in memory, and compares
immutable objects (such as numbers) by contents at the bit level. This function
is sometimes called egal.