Não entendo completamente qual é a diferença entre as expressões quote ... end
e :( ... )
em Julia.
Parece que a única diferença é que o primeiro ( quote
) introduz linhas de comentários adicionais.
- A diferença é tão simples assim ou há mais do que isso?
- Qual é o propósito dessas linhas de comentários? O que elas fazem, ou, dito de outra forma, por que você usaria uma em vez da outra?
Aqui estão alguns exemplos
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
Eu encontrei este wikibook , mas ele só diz que
os números de linha úteis que foram adicionados a cada linha da expressão citada
(referindo-se a quote
comparado a :
).
As páginas de documentação para expressões de palavras-chave também não diziam muito.
Diferentemente de outros meios de citação, :( ... ), esta forma introduz elementos QuoteNode na árvore de expressão, o que deve ser considerado ao manipular diretamente a árvore.
O que isto significa?
Eles são muito semelhantes.
:(...)
foi projetado para aspas de linha única, enquantoquote
adiciona nós de número de linha, o que significa que se o código tiver erros, a linha do erro será relatada melhor se o código abranger várias linhas.