An introduction to functional analysis