F#に恋をする:Dose 0:なぜ別のプログラミング言語が必要なのですか?

親愛なるHabrakollegi!









別のプログラミング言語F#に参加する機会を提供したいと思います。 この種のメモを書くというアイデアは人生から生まれました-私の活動の性質上、私はF#について話さなければなりません。そして、彼らがこの言語についてもっと詳しく読む場所を尋ねるとき、私は英語のリソースを参照しなければなりません。 そのため、私はブログでF# について 、そして今はハブでもゆっくりと話をすることにしました。スタートアッププログラマーの素晴らしいコミュニティを見ました。 F#は非常に美しい言語であるため、誰も無関心になりません。一連の記事「 F#に恋をする 」を率いて、各記事を「 用量 」と呼ぶことにしました。忍耐、強制的な(時間の不足のため)投与間の休憩を作る。









最近、Visual BasicとC#に加えて、Visual Studio 2010の標準パッケージにF#という別のプログラミング言語が登場することが発表されました。 これは、名前が示すように、 OCamlやMLなどに由来する主に機能的なプログラミング言語です 。 誰かがこれが.NETのFortran実装であると誤って推測したかもしれませんが:)









なぜ「主に機能する」のですか? これは、.NETプラットフォームと完全に統合され、わずかに必須であるオブジェクト指向言語でもあるためです。 F#は、.NETプラットフォームでの関数型プログラミングの本格的な出現と見なすことができます(その工業的可用性の意味で)か、多くの「癖」と奇妙ではあるが非常にコンパクトな構文を持つさらに別の.NET言語と見なすこともできます。 自分で判断して、F#で記述されたHoarソートの速度を以下に示します(比較のため、CまたはPascalで記述されたアルゴリズムを参照してください )。









 let rec quicksort = function [] -> [] | h::t -> quicksort ([ for x in t when x<=h -> x]) @ [h] @ quicksort ([ for x in t when x>h -> x]);;
      
      







過去数年でMicrosoftが関数型言語に投資し始め、なぜ.NETプラットフォームの「主要な」言語と同等のレベルにまで投資したのでしょうか。 結局のところ、関数型プログラミングは産業用プログラミングではあまり使用されないことが知られています!









それには理由があります。 ドブ博士のジャーナルの最新号には、このテーマに関する記事全体が掲載されています。 主な理由の1つ-関数型プログラミングにより、マルチコアプロセッサ向けのマルチスレッドアプリケーションの作成が容易になります。 なぜそうなのか-次のレッスンでは、関数型プログラミングとは何かについて検討します。 さらに、機能プログラムは副作用を許可または最小化しないため、プログラムの信頼性が向上し、デバッグが簡素化されます。 一般に、 関数型プログラミングを使用すると、数倍少ないコードを書くことができますが、より多くのことを考えるようになります。 指ではなく頭で作業する場合は、F#と関数型プログラミングに注意してください。 そして、私はあなたがロシア語で痛みを伴わずにそれをするのを助けようとします。









一方、機能的な本質に入らずにF#を検討し始めると、これはコンパクトな言語であることがわかります。 静的型付けによる自動型推論(ほとんどオブジェクトのデータ型を記述する必要はありません)、動的言語のようなコードになりますが、型チェックとより効率的な生成されたバイトコードがあります。









Microsoftは、Visual Studioの実装において、F#をさまざまなデータ処理タスクの解決に便利な言語として位置付けています。 同時に、F#がユーザーインターフェイスを構築するために広く使用されることは(可能ですが)想定されていないため、ビジュアルデザイナーによるF#のサポートは約束されていません。









上記のすべてが、学生、教師、学界全体からF#言語に大きな関心を寄せています。 同時に、この言語に関するロシア語の文献はまだありません。 次の投稿でF#について詳しく説明します。これにより、言語に精通し、教育や研究の目的で使用することができます。 また、F#をダウンロードする場所とインストールする方法も説明します。 Windows以外のプラットフォームへ。 しかし-次回。









これで、あなたの質問に答え、F#言語のどの側面について最初に聞きたいかについての提案を受け入れます。 このすべて-以下のコメント、またはVKontakteグループ 。 仕事で関数型プログラミング言語を使用している場合も共有しますか? 大学で関数型プログラミングを教えられましたか? 私の読者が関数型プログラミングにどれほど精通しているか聞いてみたいです!










All Articles