I don't fully understand what the difference between quote ... end and :( ... ) expressions are in Julia.
It looks as if the only difference is that the former (quote) introduces additional comment lines.
Here's some examples
julia> :(2+2)
:(2 + 2)
julia> e1=:(2+2)
:(2 + 2)
julia> e1
:(2 + 2)
julia> eval(e1)
4
julia> quote
2+2
end
quote
#= REPL[2]:2 =#
2 + 2
end
julia> e2=quote
2+2
end
quote
#= REPL[5]:2 =#
2 + 2
end
julia> e2
quote
#= REPL[5]:2 =#
2 + 2
end
julia> eval(e2)
4
I found this wikibook, but it only says that
the helpful line numbers that have been added to each line of the quoted expression
(referring to quote compared to :).
The documentation pages for keyword expressions also didn't say too much.
Unlike the other means of quoting, :( ... ), this form introduces QuoteNode elements to the expression tree, which must be considered when directly manipulating the tree.
What does this mean?
They are very similar. :(...) is designed for single line quotes, while quote adds linenumber nodes which mean that if the code has errors, the line of the error will be reported better if the code spans several lines.