I have noticed we seem to use different words for different purpose, and that is the meaning of unambiguous. Nevertheless, I do think I explained what I used the words for. How I "defined" the words.
I don't see a point discussing the definition of the words "definition" and "formal definition".
Also consider this.The answer to all of these are yes. In fact, you wrote enough to let me know that you wanted to discuss the meaning of list as it pertains to computer science; which is as formal as any implementation. In fact I think your plan was to pick a language I might not know, to confuse me and control the conversation. Like MK27 said though, the name is not the thing. Definitions are concepts.
Sure, all knowledge have some sure in some way or form. But the question is, how often do you need it?
There might be a word you use everyday. There might be a word you use only once a year.
This is kind of the same situation with knowing a formal definition, a "casual" definition and a concept's name.
Sure, a formal definition might do you some good some day, in some way. But it is probably not as important as knowing the name of the concept which you would use far more often when speaking with other programmers and other people.
I tend to separate things into three categories: name, casual definition and formal definition.
The name is as its implies. But knowing only the name won't make you understand what something is, but will help you discuss that with other people.
Casual definition is basically what I mean as knowing what something is and being able to describe it in your own words. This is absolutely critical. without it, you won't understand what something does.
Formal definition is what I mean by knowing the exact way something is defined, written down some place or some where. Like how a set is described in a mathematics book. This is typically less important, however, since you will be able to use and understand something with its casual definition often without the need for the formal definition.