Quelle est la différence entre fonctionnelle, structuré et programmation procédurale?

J'ai lu quelques articles sur tous les sujets, mais je n'ai pas très bien les différences.