That is, a function relates an input to an output. But, not all input values have to work, and not all output values. For example, you can imagine a function that only works for positive numbers, or a function that only returns natural numbers. To more clearly specify the types and values of a functions input and output, we use the terms domain, range, and codomain.
Speaking as simply as possible, we can define what can go into a function, and what can come out:
domain: what can go into a function
codomain: what may possibly come out of a function
range: what actually comes out of a function
Read on for more, including a couple of examples. These are important concepts for learning functional programming.