La definizione di programmazione strutturata considera solo la programmazione imperativa? Con ciò intendo dire che la definizione di programmazione strutturata esclude automaticamente la programmazione funzionale (nell'uso più comune, con il quale intendo non una programmazione puramente funzionale, ma qualcosa come Clojure).
La programmazione strutturata, almeno dalle definizioni che ho trovato sembrano davvero dire: "una buona programmazione non dovrebbe usare goto, e dovrebbe essere modulare". Il che non esclude necessariamente la programmazione funzionale, mentre la maggior parte delle definizioni sembra iniziare con "... è un sottoinsieme di programmazione imperativa".
Sto cercando un po 'di chiarimenti, penso.
A proposito, ho letto "Qual è la differenza? Tra programmazione imperativa, procedurale e strutturata? " che è una descrizione storica piuttosto buona.