Existe algo fundamentalmente diferente nas linguagens que permite ao F # ter o console interativo, mas dificulta sua implementação no C #?
Sim.
O F # é um descendente da linguagem de programação ML, que por sua vez foi fortemente influenciada por linguagens como Lisp e Scheme. Esses idiomas foram projetados desde o primeiro dia para ter três boas propriedades.
Primeiro, esses idiomas não têm realmente instruções do jeito que você as pensa em C #. Em vez disso, quase tudo é uma expressão que tem um valor ; portanto, um mecanismo de avaliar e imprimir o valor faz sentido em quase todas as situações.
Segundo, esses idiomas desencorajam a programação com efeitos colaterais, para que você possa fazer avaliações sem se preocupar com a bagunça do estado global.
Terceiro, a maior parte do trabalho que você faz nessas línguas é "de nível superior"; normalmente não há "classe" ou "espaço para nome" ou outro contexto.
Por outro lado, o C # enfatiza o fluxo de controle de programação com instruções que produzem efeitos colaterais, e essas instruções estão sempre em vários contêineres aninhados - um espaço para nome, uma classe, um método e assim por diante.
Portanto, essas são todas as coisas que tornam mais difícil para o C # ter um REPL, mas certamente não é impossível . Apenas precisamos descobrir quais são as semânticas para declarações e expressões que aparecem fora do contexto usual e quais são as semânticas de mutações que alteram as ligações de nomes, e assim por diante.
Por que o F # tem um modo interativo, mas não o C #?
Porque a equipe do F # decidiu que ter um loop REPL era um cenário prioritário para eles. A equipe de C # historicamente não tem. Os recursos não são implementados, a menos que sejam os recursos de maior prioridade que se encaixam no orçamento; até agora, um C # REPL não estava no topo da nossa lista.
O projeto Roslyn possui um C # REPL (e eventualmente também terá um VB REPL, mas ainda não está pronto.) Você pode fazer o download de uma versão prévia para ver como você gosta em
http://www.microsoft.com/en-us/download/details.aspx?id=27746