Declarative Programming Vs Functional Programming