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.