Adaptation occurs in a variety of forms in all sensory systems, motivating the question: what is its purpose? A productive approach has been to hypothesize that adaptation helps neural systems to efficiently encode stimuli whose statistics vary in time. To encode efficiently, a neural system must change its coding strategy, or computation, as the distribution of stimuli changes. Information theoretic methods allow this efficient coding hypothesis to be tested quantitatively. Empirically, adaptive processes occur over a wide range of timescales. On short timescales, underlying mechanisms include the contribution of intrinsic nonlinearities. Over longer timescales, adaptation is often power-law-like, implying the coexistence of multiple timescales in a single adaptive process. Models demonstrate that this can result from mechanisms within a single neuron.