Variable and function names are symbols, namely sequences of characters, which are different from strings. For example, you can have a variable named abc, but not "abc". The # operator will turn a string into a symbol; for example (#"abc") is the symbol abc.
If you enter
or
then the variable abc will have the value 3. Entering #a will still give you abc; you can get 3 with eval(#a).
Similarly for functions. If you enter
or
you will get
which is sin(pi/4).