質問

たとえば、Java では次のようになります。 関数型 Java そして 高次 Java. 。どちらも基本的に、高次のカリー化された関数と、おそらくいくつかの新しいデータ型 (タプル、不変リスト) を操作するための小さな API を提供します。

役に立ちましたか?

解決

調べましたか F#?

また、きちんとしたブログ投稿は次のようになります ここ C# 3.0 に組み込まれた新しいジェネリック / ラムダ式の使用方法について説明します。

using System.Linq をソース ファイルの先頭に追加するだけで、折りたたみやフィルタリングなど、コレクションの操作に多くの優れた新機能が追加されます。

他のヒント

LanguageExt の外観 とても C# での関数型スタイルのプログラミングが容易になることが期待されます。

https://github.com/louthy/言語-ext

何らかの理由で F# を使用できず、品質と信頼性を向上させるために C# コードで関数型パラダイムとイディオムを使用したいと仮定します。

C# の関数型スタイルのパターン マッチング

C#/.Net 用のモナド ライブラリ

もあります 「高める」 これには、オプションタイプ(おそらく)などの機能的なものがいくつかあります。

あなたが欲しいと思います F#

また、C# の最新バージョンには、基本言語に多くの機能概念が含まれています。

C# にはそのようなライブラリがあるかもしれませんが、おそらく F# のみを使用することを検討する必要があります。 http://research.microsoft.com/fsharp/fsharp.aspx そして http://msdn.microsoft.com/en-us/fsharp/default.aspx.

Microsoft は F# を Visual Studio のファーストクラス言語にすることを計画しているため、最初のものの構築に CTP のいずれかを使用するリスクはほとんどありません。

C# を拡張するものをお探しの場合は、いいえ、.NET ベースの関数型言語である F# があります。「F#について」より ページ:

F# は、.NET Framework の型付き関数型プログラミング言語です。これは、型付き関数型プログラミングの簡潔さ、表現力、構成性と、.NET のランタイム サポート、ライブラリ、相互運用性、ツール、オブジェクト モデルを組み合わせたものです。F# は ML 言語ファミリーに由来しており、OCaml と互換性のあるコア言語を持っていますが、C# や Haskell も利用しています。F# は、.NET の第一級市民となるようにゼロから設計されており、他の .NET 言語とのスムーズな相互運用性を実現します。たとえば、C# と F# は相​​互に直接呼び出すことができます。これは、F# が Windows Presentation Foundation や DirectX などのすべての .NET Framework API に即座にアクセスできることを意味します。同様に、F# で開発されたライブラリは他の .NET 言語から使用できます。

F# と OCaml は同様のコア言語を共有しているため、一部の OCaml ライブラリとアプリケーションは直接、または条件付きコンパイルに小さな変更を加えてクロスコンパイルできます。これにより、既存の OCaml コードをクロスコンパイルおよび/または .NET に移植するためのパスが提供され、プログラマがこれらの言語間でスキルを移転できるようになります。このプロジェクトの主な焦点は、OCaml に似た言語の適用範囲を、従来は使用されていなかった分野に拡大することでした。プロジェクト全体を通して、F# の設計者は、Xavier Leroy や OCaml コミュニティの他の人々のサポートと励ましに感謝しています。

それ自体はシュリンクラップされたライブラリではありませんが、Microsoft の Luca Bolognese は 一連のブログ投稿 ここで彼は、タプル、レコード、型共用体などの型を使用した関数型プログラミング用の C# ライブラリを構築します。

また、Linq は基本的に、C# の構文サポートを備えた関数型プログラミング用のライブラリです。

チェックアウト http://code.msdn.microsoft.com/FunctionalCSharp いくつかのサンプルについて。

F# では、Microsoft から CTP リリースが入手可能です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top