Pergunta

Por exemplo, em Java existe funcionais Java e Higher-Order Java . Ambos essencialmente dar uma pequena API para manipulação de ordem superior, funções ao curry, e talvez alguns novos tipos de dados (tuplas, listas imutáveis).

Foi útil?

Solução

você olhou para F # ?

Além disso, um post puro seria aqui que fala sobre como usar o novo expressões genéricas / lambda construída em C # 3.0.

Se você acabou de adicionar usando System.Linq ao topo do seu arquivo fonte, há um monte de boas novas funções adicionadas ao trabalhar com coleções, como dobrar / filtragem / etc.

Outras dicas

Looks LanguageExt muito prometendo para fazer a programação estilo funcional em C # mais fácil.

https://github.com/louthy/language-ext

Assumindo que você não pode usar F # por qualquer motivo, e só quer usar paradigmas funcionais e expressões idiomáticas em seu código C # para melhorar a qualidade e confiabilidade:

estilo funcional correspondência de padrão para C #

biblioteca Mônada para C # /. Net

Há também 'elevar' que tem algumas coisas funcionais, como tipos de opção (maybes) etc.

Eu acho que você quer F #

Além disso, as versões mais recentes de C # tem um monte de conceitos funcionais incluídas no langauge base.

Pode haver uma biblioteca para C #, mas você provavelmente deve considerar apenas usando F # http: //research.microsoft.com/fsharp/fsharp.aspx e http://msdn.microsoft.com/en-us/fsharp/default.aspx .

planos da Microsoft para tornar a F # uma linguagem de primeira classe em Visual Studio que não deverá haver pouco risco em usar um dos CTPs para construir o seu material inicial.

Se você está procurando algo que se estende C # então não, mas existe F #, que é uma linguagem funcional .NET base. Do "Sobre F #" página :

F # é uma linguagem de programação funcional digitado para o .NET Framework. Ele combina a concisão, expressividade e composicionalidade da programação funcional digitado com o modelo de suporte de tempo de execução, bibliotecas, interoperabilidade, ferramentas e objetos de .NET. F # decorre da família ML de línguas e tem uma linguagem central compatível com a da OCaml, embora também chama de C # e Haskell. F # foi projetado desde o início para ser um cidadão de primeira classe em .NET, dando interoperabilidade suave com outras linguagens .NET. Por exemplo, C # e # F pode chamar um ao outro directamente. Isto significa que F # tem acesso imediato a todas as APIs quadro, a NET, incluindo, por exemplo, o Windows Presentation Foundation e DirectX. Da mesma forma, as bibliotecas desenvolvidas em F # pode ser usado a partir de outras linguagens .NET.

Uma vez que F # e share OCaml uma linguagem núcleo semelhante, algumas bibliotecas e aplicativos OCaml pode cross-compilação diretamente ou com pequenas alterações condicionalmente compilados. Isto fornece um caminho para a cross-compilação e / ou porta código OCaml para .NET existente, e também permite que os programadores a habilidade de transferência entre línguas. Um dos principais focos do projeto tem sido a de estender o alcance de línguas OCaml-como em arenas onde eles não têm sido tradicionalmente usados. Ao longo do projeto os designers de F # são gratos pelo apoio e incentivo de Xavier Leroy e outros na comunidade OCaml.

Nem uma biblioteca em si, mas Luca Bolognese retráctil da Microsoft tem uma série de posts onde ele constrói uma biblioteca C # para programação funcional com tipos como tuplas, registros, tipo sindicatos e assim por diante :

Além disso Linq é basicamente uma biblioteca para programação funcional com suporte syntactial em C #.

F #, há uma versão CTP disponível no Microsoft.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top