Is there something fundamentally different about the languages that allows F# to have the interactive console but makes it difficult to implement it for C#?
Sì.
F # è un discendente del linguaggio di programmazione ML, che a sua volta è stato pesantemente influenzato da linguaggi come Lisp e Scheme. Quelle lingue sono state progettate fin dal primo giorno per avere tre belle proprietà.
Innanzitutto, quelle lingue non hanno davvero dichiarazioni il modo in cui le pensi in C #. Piuttosto, quasi tutto è un'espressione che ha un valore , quindi un meccanismo di valutazione-e-allora-stampa-il-valore ha senso in quasi tutte le situazioni.
In secondo luogo, quelle lingue scoraggiano la programmazione con effetti collaterali, quindi puoi fare delle valutazioni senza preoccuparti di rovinare lo stato globale.
In terzo luogo, la maggior parte del lavoro che fai in quelle lingue è "al livello più alto"; di solito non vi è alcuna "classe" o "spazio dei nomi" o altro contesto.
Al contrario, C # enfatizza il flusso di controllo della programmazione con affermazioni che producono effetti collaterali, e tali istruzioni sono sempre in più contenitori nidificati: uno spazio dei nomi, una classe, un metodo e così via.
Quindi queste sono tutte cose che rendono più difficile per C # avere un REPL, ma certamente non impossibile . Dovremmo solo capire quale sia la semantica per le affermazioni e le espressioni che appaiono al di fuori del solito contesto, e quali sono le semantiche delle mutazioni che cambiano le associazioni dei nomi e così via.
Why does F# have an interactive mode but not C#?
Perché il team di F # ha deciso che avere un ciclo REPL era uno scenario prioritario per loro. Il team C # storicamente no. Le funzionalità non vengono implementate a meno che non siano le funzionalità con priorità più alta che si adattano al budget; fino ad ora, un C # REPL non è stato in cima alla lista.
Il progetto Roslyn ha un REPL C # (e alla fine avrà anche un VB REPL, ma non è ancora pronto.) Puoi scaricare una versione di anteprima per vedere come ti piace
link