Como abordar um projeto sério de F # sem conhecimento de C #?

11

Então, essencialmente o projeto que desejo realizar é um editor de SVG. Eu preferiria usar o WPF porque, então, posso aproveitar o XAML para o layout do meu aplicativo (esse designer é tão bacana). Infelizmente, só uso o framework .NET há apenas alguns meses e ainda não estou familiarizado com a maioria dos nomes de classe.

O objetivo era usar o F # porque é uma linguagem de programação funcional e a recursão do F # e as maravilhosas operações de lista combinadas com as tuplas funcionarão bem para o que estou tentando alcançar. E o objetivo é usar o .NET por causa de sua enorme biblioteca de classes disponíveis e documentadas, com exemplos.

Eu já olhei para esta pergunta. /software/3129/is-there-a-canonical-book-on-f Mas as respostas são apenas para F # em geral e assumem que você já conhece C #, o que não é particularmente útil para mim .

O livro principal como resposta para a pergunta mencionada acima foi Programação Funcional no Mundo Real: com exemplos em F # e C #. No entanto, a resenha de 3 estrelas da Amazon sobre este livro, embora bastante rigorosa e talvez exagerada, ilustra corretamente meu problema.

Se você está interessado em programação funcional, mas não é um C # procurando aprender F #, pode pular com segurança este livro.

Procurei on-line por exemplos de WPF F #, existem vários trechos de código aqui e ali, mas nada substancial ou que demonstre ser usado fora de um único script de arquivo .fsx e nada realmente de nível empresarial ou mesmo pelo menos profissional.

Portanto, mesmo a Microsoft não possui muitos exemplos de como fazer coisas .NET em F #. Os exemplos que encontrei geralmente são apenas recursos exclusivos do F #. Dê uma olhada nas seções básicas e avançadas do F #, e você descobrirá que elas são culpadas apenas de ensinar sintaxe. Por exemplo, o MSDN no WPF para a classe Line não possui nenhum exemplo de código em F #.

Quando você rola a guia de exemplo de código para F #, apenas diz

No code example is currently available or this language may not be supported.

Com tão poucos exemplos de código disponíveis, acho difícil realizar esse projeto.

Minha pergunta
gostaria de receber ajuda para entender como devo abordar esse projeto usando F # quando não conheço C # tão bem.

Alexander Ryan Baggett
fonte

Respostas:

10

Divida o problema em duas partes.

  1. Aprenda o básico do F # excluindo o uso do WPF. Aprenda a escrever funções sem usar mutablese while statementse usando function composition. Depois de fazer isso, aprenda a usar os mutables para atualizar o estado.

  2. Aprenda como usar o WPF no F # lendo Learning WPF através do F # e vice-versa , de John Liao.

Se você não encontrar o código que gosta no F #, lembre-se de que o F # é um descendente do OCaml, portanto, Google for OCaml e SVG, e você pode encontrar algo de interesse. Embora o F # não possa compilar o OCaml, ele é muito próximo e não deve demorar muito tempo para ser convertido. Eu converti uma grande quantidade de OCaml para F # e tudo isso foi convertido.

Guy Coder
fonte