Is there a difference between affordance and discovery?

Looking at the UX principles that mozilla use as keywords to tag bugs in bugzilla it looks like ux-affordance and ux-discovery are very similar:

ux-affordance — controls should visually express how the user should interact with them. [Source: Norman]

ux-discovery — users should be able to discover functionality and information by visually exploring the interface, they should not be forced to recall information from memory. (This is often the nemesis of ux-minimalism since additional visible items diminish the relative visibility of other items being displayed). [Source: Nielsen]

Are these just two ways of looking at the same problem, or are there UX issues that would fall under one principle but not the other?

Update:

Perhaps the tag-wiki definitions on this site could be updated based on the responses to this question. They are currently:

Affordance is a property of an object that naturally indicates how the object can be used.

And for discovery:

the process by which a user learns what a program can do through affordances in the UX.