Programación declarativa vs. imperativa