Domain-Theoretic Foundations of Functional Programming