expressão vs call

Qual é a diferença entre uma expressão e uma chamada?

Por exemplo:

func <- expression(2*x*y + x^2)
funcDx <- D(func, 'x')

Então:

> class(func)
[1] "expression"
> class(funcDx)
[1] "call"

Chamandoeval com a lista do envir trabalha em ambos. Mas estou curioso para saber qual é a diferença entre as duas classes, e sob quais circunstâncias devo usar expressão ou ligação.

questionAnswers(2)

yourAnswerToTheQuestion