in mathematics, all functions are referentially transparent, because a mathematical function can only take values in and spit a value out. in programming, this is not always true—a function might also find out what day of the year it is, or print a message to the screen. because of this difference, some people use other names for functions in programming, like procedures.