As a language, Scheme offers: garbage collection, closures, proper tail calls, multiple return values, full continuations, the dynamic environment, exceptions. The machinery required to implement these mechanisms has a run–time cost. If we do not want to use these facilities because, for example, they make the code slow: we are better off using another language.