Example on Referential transparency (wikipedia) I have a rather foolish question on an example
explaining the idea behind Referential transparency
Here is given an example i not understand:

Consider a function that returns the input from some source.
In pseudocode, a call to this function might be GetInput(Source)
where Source might identify a particular disk file,
the keyboard, etc. Even with identical values of Source,
the successive return values will be different.
Therefore, function GetInput() is neither deterministic nor
referentially transparent.

I'm confused about the claim that
even with identical values of (variable) Source,
the successive return values will be different.
Eg if I tap an 'a' on my keyboard and apply GetInput(Source),
it gives my 'a' as output. Then I tap again an 'a',
which of course is identical to my previuos input.
Next application of GetInput(Source) gives me again 'a'.
Therefore I not understand how is it possible that
GetInput(Source1) and GetInput(Source2) might give
different values if the two imputs Source1 and Source2
are identical. Sorry, if it's too dumb, but I not understand
this quoted example.
If Source refers to the keyboard, and the user types a the first time but b the second time, then GetInput(Source) will not return the same value both times.
It's impossible to replace GetInput(Source) by its value without changing the meaning of the program, because there are many possible values, depending on the actions of the user. To replace GetInput(Source) with a would be wrong if the user decides to press b.
An example of a consequence of the fact that GetInput(Source) is not referentially transparent is that if the program calls this twice, which call returns a and which calls return b depends on the order in which the calls are evaluated (or more precisely, on the order in which the calls get their input from the keyboard: you have to get down to this level of detail to be sure).