In realtà, alcune scuole già lo fanno in questo modo. Dove studio (Università di Copenhagen), insegnano SML nel primo semestre, come introduzione alla programmazione. Quindi insegnano Java in seguito, come introduzione alla OOP.
Penso che funzioni molto bene e sono d'accordo con te è meglio del contrario. La programmazione funzionale è abbastanza intuitiva per qualcuno che non è (ancora) un programmatore. Mappa molto meglio di quello che ci è stato insegnato come matematica al liceo o prima, quindi le persone che non sono ancora state esposte alla programmazione imperativa di solito la raccolgono senza troppi problemi.
In effetti, c'è una tendenza che le persone che sono nuove alla programmazione quando si iscrivono scelgono SML su più veloce rispetto a chi ha già imparato Java o C++.
Sembra che ci sia un grande salto concettuale nel passaggio dall'imperativo al funzionale, ma il contrario sembra molto più semplice. In genere gli studenti non trovano Java difficoltoso quando sono esposti a questo dopo aver appreso l'SML. Una volta che conosci i concetti di programmazione "pura", incollare gli effetti collaterali è abbastanza semplice. Ma se la tua intera comprensione della programmazione si basa su effetti collaterali, è molto più difficile immaginare che tutto sia possibile senza.
Penso che un grande vantaggio di questo approccio sia che i principi di programmazione funzionale diventano una parte essenziale del vostro toolbox di programmazione, piuttosto che qualche componente aggiuntivo esoterico che potreste usare se volete mettervi in mostra. Anche quando si programmano in lingue imperative, penso che ci sia un vantaggio nell'avere il proprio background in un linguaggio funzionale. Anche quando si programma in qualcosa di basso livello come C, c'è un vantaggio nel pensare di minimizzare lo stato e gli effetti collaterali e di essere abituati al concetto di funzioni di ordine superiore (anche se non sono disponibili nella lingua)
Quando dici scuola, intendi primario? La programmazione funzionale è insegnata nella maggior parte delle università e in qualsiasi corso sui linguaggi di programmazione. – kgrad
Il titolo è un po 'fuorviante, la programmazione funzionale viene insegnata nella maggior parte delle scuole e la domanda nel corpo non corrisponde alla domanda nel titolo. –
La domanda nel corpo è davvero buona, per favore aggiorna l'argomento. –